recognize a drive as removable media (e.g. compact flash, sd card or usb drive)

Tim Golden tim.golden at viacom-outdoor.co.uk
Sat Apr 8 15:03:49 EDT 2006


Mike Joyce wrote:
> I am trying to write a portable script that will find removable media,
> such as compact flash, sd card, usb, etc. drive and then upload files
> from the media. I want this to be portable so that I can write and
> maintain one program for both Linux and Windows. Each platform uses
> different functions so even if I could find two platform dependent
> functions that would be fine. Basically, I would like to avoid checking
> fixed disks if possible.
> 	If anyone know of a good way to do this please let me know. Thanks in
> advance for any help.

Under Windows, you can probably use WMI for this, depending on
exactly what it is you're trying to do. If I read you right, you want
to
scan all devices, determine the removable ones, and then read stuff
off them.

If that's right, then something like this might do the trick on Windows
(untestedish - picks up my floppy and USB stick):

<code>
import wmi
c = wmi.WMI ()
removable_disks = c.Win32_LogicalDisk (DriveType=2)
# if you want CDROM as well, repeat with DriveType=5
</code>

This will give you a list of WMI objects, each corresponding
to a removable disk. You can access the drive letter via the
objects' .Name attributes, and do an os.walk or whatever on
them.

<code>
import os
for disk in removable_disks:
  for dirpath, dirnames, filenames in os.walk (disk.Name + "\\"):
    print dirpath # and do whatever else you want
</code>

TJG




More information about the Python-list mailing list