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

Discussion in 'Python' started by Mike Joyce, Apr 8, 2006.

  1. Mike Joyce

    Mike Joyce Guest

    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.
    -Mike Joyce
     
    Mike Joyce, Apr 8, 2006
    #1
    1. Advertisements

  2. Mike Joyce

    Larry Bates Guest

    Take a look at the code located at the top of the os.py module. It
    goes through a series of tests to determine which OS it is running
    on. You should be able to use something like that to create branches
    in your code to handle Windows/Linux separately. As far as determining
    removable drives in Windows/Linux I'm afraid I can't help on that.

    -Larry Bates
     
    Larry Bates, Apr 8, 2006
    #2
    1. Advertisements

  3. Mike Joyce

    Tim Golden Guest

    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
     
    Tim Golden, Apr 8, 2006
    #3
  4. Any suggestions as to doing this on a Mac?
     
    Gordon Rainsford, May 3, 2006
    #4
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.