Is there a way to list all the available drive letters in python?
import win32api
drives = win32api.GetLogicalDriveStrings()
drives = drives.split('\000')[:-1]
print drives
Adapted from: http://www.faqts.com/knowledge_base/view.phtml/aid/4670
Without using any external libraries, if that matters to you:
import string
from ctypes import windll
def get_drives():
drives = []
bitmask = windll.kernel32.GetLogicalDrives()
for letter in string.uppercase:
if bitmask & 1:
drives.append(letter)
bitmask >>= 1
return drives
if __name__ == '__main__':
print get_drives() # On my PC, this prints ['A', 'C', 'D', 'F', 'H']
Found this solution on Google, slightly modified from original. Seem pretty pythonic and does not need any "exotic" imports
import os, string
available_drives = ['%s:' % d for d in string.ascii_uppercase if os.path.exists('%s:' % d)]