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