Hi All--
Heiko said:
I am trying to find out (using Python under windows) the name of a CD that
is currently in the drive specified by a path name.
And while I am at it, I'd also like to know whether the specified drive
contains a CD at all, and whether the drive is actually a CD drive.
AFAIK, Python doesn't provide a way to do it, and a search in the web
yielded only soutions for Linux.
Can anyone show me a solution that works with windoze?
This works. The only thing you have to do is stuff a floppy into the
drive & find out what the fstype is (that's inf[-1] in the code below)
so you can key on it. Try the docs for Mark Hammond's Win32, and
there's always his _Python Programming on Win32_.
import os
import os.path
import win32api
def findCDs():
cdDrives=[]
print "Searching for cd drives..."
drives=win32api.GetLogicalDriveStrings().split(":")
for i in drives:
dr=i[-1].lower()
if dr.isalpha():
dr+=":\\"
inf=None
try:
inf=win32api.GetVolumeInformation(dr)
except:
pass # Removable drive, not ready
if inf!=None:
if inf[-1].lower().endswith("cdfs"):
cdDrives.append([dr,inf])
elif inf[-1].lower().endswith("udf"):
cdDrives.append([dr,inf])
return cdDrives
inf[0] contains the volume label if there is one and if there's a CD
loaded:
Note that you must use the full drive spec, "letter:\\" or
GetVolumeInformation() doesn't always work.
There are probably better ways to do these things, but they do work;
I've been using them constantly the last few days.
Metta,
Ivan
----------------------------------------------
Ivan Van Laningham
God N Locomotive Works
http://www.andi-holmes.com/
http://www.foretec.com/python/workshops/1998-11/proceedings.html
Army Signal Corps: Cu Chi, Class of '70
Author: Teach Yourself Python in 24 Hours