我正在编写一个应该跨平台的脚本(不需要编辑代码就可以由外行人使用) 该脚本将基本遍历计算机上的所有目录并处理找到的一些文件 有问题的代码片段如下:
for dirpath, dirnames, filenames in os.walk("/"):
for file in filenames:
#process files
所以在Linux上这很好用,因为“/”是根目录。但是,在Windows上,“/”转换为C:\,这意味着在具有多个驱动器(C:\,D:\,E:\ etc)的计算机上,将不会处理其他驱动器。
如何确保使用一个脚本在Windows和Linux中处理所有驱动器上的所有文件?
由于
答案 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