有没有办法列出所有可用的Windows驱动器?

61 投票
20 回答
74852 浏览
提问于 2025-04-15 11:25

有没有办法在Python中列出Windows系统中所有正在使用的驱动器字母?

(我在谷歌搜索这个问题时似乎没有找到合适的答案)

一个C++的类似方法:列出Windows中所有可用的驱动器字母

20 个回答

25

在网上找到这个解决方案,稍微修改了一下,感觉挺符合Python的风格,而且不需要什么特别复杂的导入。

import os, string
available_drives = ['%s:' % d for d in string.ascii_uppercase if os.path.exists('%s:' % d)]
77

如果你不想使用任何外部库,这对你来说很重要的话:

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']
76
import win32api

drives = win32api.GetLogicalDriveStrings()
drives = drives.split('\000')[:-1]
print drives

改编自: http://www.faqts.com/knowledge_base/view.phtml/aid/4670

撰写回答