我正在编写一个应该跨平台的脚本(非专业人员可以使用,而无需编辑代码)。
该脚本基本上会遍历计算机上的所有目录并处理找到的某些文件。
有问题的代码段如下:

for dirpath, dirnames, filenames in os.walk("/"):
    for file in filenames:
        #process files


因此在Linux上,由于“ /”是根目录,因此可以正常工作。但是,在Windows上,“ /”转换为C:\,这意味着在具有多个驱动器(C:\,D:\,E:\等)的计算机上,将不会处理这些其他驱动器。

如何确保使用一个脚本在Windows和Linux中都处理了所有驱动器上的所有文件?

谢谢

最佳答案

也许像这样的(未经测试的)示例,它检查计算机是否不是Linux平台上的驱动器:

import sys
if sys.platform == "linux" or sys.platform == "linux2":
    drives = ['/']
else:
    # http://nullege.com/codes/search/win32api.GetLogicalDriveStrings
    import win32api
    drives = win32api.GetLogicalDriveStrings()
    drives = drives = drives.split('\000')[:-1]

for drive in drives:
    for dirpath, dirnames, filenames in os.walk(drive):
        # ...
        pass

关于python - 如何遍历Windows中具有多个驱动器的所有目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24104590/

10-12 23:03