gpt4 book ai didi

python - 将 Windows CDROM 驱动器视为 block 文件?

转载 作者:可可西里 更新时间:2023-11-01 10:43:59 26 4
gpt4 key购买 nike

我正在尝试使用 Python 模块(准确地说是 python-dvdvideo)来克隆 ISO 镜像。如果我将我的计算机上已有的 ISO 文件的文件路径传递给它,所提供的类工作正常,但如果我尝试将我的 CDROM 驱动器的盘符传递给它,它会抛出异常。

快速检查库的代码后,我确定该类需要一个常规文件或 block 特殊设备文件,如下所示:

def __init__(self, filename):
s = os.stat(filename)
if stat.S_ISREG(s.st_mode):
f = self.File(filename)
elif stat.S_ISBLK(s.st_mode):
f = DvdCssFile(filename)
else:
raise RuntimeError

这引出了我的问题:有没有一种方法可以将 Windows CDROM 驱动器视为其中之一?我不太了解 Linux 在这方面的工作方式(它将 CDROM 驱动器视为/dev/* 下的 block 设备文件),但不熟悉 Windows 如何看待驱动器。

最佳答案

在尝试做类似的事情时,我发现了 this thread有用。根据那里的信息(以及 here )我创建了这个,它向您展示了基础知识:

import os

driveName = "D"

# Get Window raw block device name from logical drive
# Adapted from https://stackoverflow.com/a/6523306/1209004
deviceName = "\\\\.\\" + driveName + ":"

# Open as file object
# Adapted from https://stackoverflow.com/q/7135398/1209004
d = os.fdopen(os.open(deviceName, os.O_RDONLY|os.O_BINARY), 'rb+')

# Read data
data = d.read()

# Close file object
d.close()

# Write data to an output file
fOut = open('data.bin','wb')
fOut.write(data)
fOut.close()

我注意到的一件事是,与 IsoBuster 等专用成像工具相比,以这种方式读取的数据可能不完整。此外,它似乎无法访问“增强型”音频 CD 上的数据 session 。所以谨慎使用。

关于python - 将 Windows CDROM 驱动器视为 block 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35543151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com