def ReadDiskBytes(volume_letter: str, start_byte: int, length: int) -> bytes: """ 从指定磁盘的指定起始位置读取指定长度的字节。 :param volume_letter: 盘符(如 "Y") :param start_byte: 起始字节位置(整数) :param length: 要读取的字节数(整数) :return: 读取到的原始字节数据(bytes) """ if not isinstance(volume_letter, str) or len(volume_letter.strip()) != 1: raise ValueError("drive_letter 必须是单个字母,如 'Y'") # 构建 Windows 设备路径格式:\\.\Y: disk_path = f"\\\\.\\{volume_letter.strip().upper()}:" try: with open(disk_path, "rb") as disk: disk.seek(start_byte) data = disk.read(length) return data except PermissionError: raise PermissionError("权限不足,请以管理员身份运行程序") except Exception as e: raise RuntimeError(f"读取磁盘失败:{e}") if __name__ == "__main__": drive = "Y" start = 687685632 size = 7163904 try: content = ReadDiskBytes(drive, start, size) print(f"成功读取 {len(content)} 字节内容。前100字节为:") print(content[:100]) except Exception as e: print("错误:", e)