Hi All-- Heiko Selber wrote: > > 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: >>> win32api.GetVolumeInformation("c:\\") ('God_C', -798323922, 255, 459007, 'NTFS') >>> 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 -- http://mail.python.org/mailman/listinfo/python-list