如何在多个驱动器的Windows安装中遍历所有目录

时间:2014-06-08 09:03:08

标签: python linux windows

我正在编写一个应该跨平台的脚本(不需要编辑代码就可以由外行人使用) 该脚本将基本遍历计算机上的所有目录并处理找到的一些文件 有问题的代码片段如下:

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

所以在Linux上这很好用,因为“/”是根目录。但是,在Windows上,“/”转换为C:\,这意味着在具有多个驱动器(C:\,D:\,E:\ etc)的计算机上,将不会处理其他驱动器。

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

由于

1 个答案:

答案 0 :(得分:0)

如果机器不是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