如何查找可用CD / DVD驱动器的驱动器号?
我在Windows上使用Python 2.5.4。
答案 0 :(得分:9)
使用win32api,您可以获取驱动器列表并使用GetDriveType 您可以查看它是什么类型的驱动器,您可以通过'Python for Windows Extensions'或ctypes模块访问win32api
以下是使用ctypes的示例:
import string
from ctypes import windll
driveTypes = ['DRIVE_UNKNOWN', 'DRIVE_NO_ROOT_DIR', 'DRIVE_REMOVABLE', 'DRIVE_FIXED', 'DRIVE_REMOTE', 'DRIVE_CDROM', 'DRIVE_RAMDISK']
def get_drives():
drives = []
bitmask = windll.kernel32.GetLogicalDrives()
for letter in string.uppercase:
if bitmask & 1:
drives.append(letter)
bitmask >>= 1
return drives
for drive in get_drives():
if not drive: continue
print "Drive:", drive
try:
typeIndex = windll.kernel32.GetDriveTypeW(u"%s:\\"%drive)
print "Type:",driveTypes[typeIndex]
except Exception,e:
print "error:",e
输出:
Drive: C
Type: DRIVE_FIXED
Drive: D
Type: DRIVE_FIXED
Drive: E
Type: DRIVE_CDROM
答案 1 :(得分:2)
使用Python for Windows extensions,您可以使用:
[drive for drive in win32api.GetLogicalDriveStrings().split('\x00')[:-1]
if win32file.GetDriveType(drive)==win32file.DRIVE_CDROM]
改编自this post。
即使驱动器中没有CD / DVD,也会显示驱动器号。
答案 2 :(得分:2)
如果您使用WMI Module,则非常简单:
import wmi
c = wmi.WMI()
for cdrom in c.Win32_CDROMDrive():
print cdrom.Drive, cdrom.MediaLoaded
Drive
属性会为您提供驱动器号,MediaLoaded
会告诉您驱动器中是否有内容。
如果您不知道,Windows Management Instrumentation的WMI标准,并且是一个API,允许您查询有关系统的管理信息。 (对于它的价值,WMI是Common Information Model标准的Windows实现。)Python WMI模块使您可以轻松访问Windows WMI调用。
在上面的代码中,我们查询Win32_CDROMDrive
WMI Class以了解系统上的CD ROM驱动器。这为我们提供了一个具有大量属性的对象列表,这些属性告诉我们有关CD驱动器的所有信息。我们检查驱动器号和媒体状态,因为这就是我们现在所关心的。
答案 3 :(得分:2)
使用win32file
模块中的GetDriveType Function。
示例代码:
import win32file
for d in ('C', 'D', 'E', 'F', 'G'):
dname='%c:\\' % (d)
dt=win32file.GetDriveType(dname)
if dt == win32file.DRIVE_CDROM:
print('%s is CD ROM' % (dname))
答案 4 :(得分:0)
您可以使用WMI,请参阅this cookbook以获取示例