我编写了一个脚本来爬取系统中的目录并记录文件元数据。我使用os.walk来完成这项工作。它在大部分情况下都能正常工作,但在不同的机器上运行时会返回不同的文件列表。
现在我正在测试我的Dropbox文件夹;在我的MBPro(lion)上,它可以遍历文件夹并返回正确数量的文件。但在我的iMac(mountain lion)上却不能,通常每次运行会跳过1-3个文件。额外的爬取会捕捉到一个迷路者,但通常它仍然会忽略目录中的一些文件。
以下是代码的简短片段:
现在我正在测试我的Dropbox文件夹;在我的MBPro(lion)上,它可以遍历文件夹并返回正确数量的文件。但在我的iMac(mountain lion)上却不能,通常每次运行会跳过1-3个文件。额外的爬取会捕捉到一个迷路者,但通常它仍然会忽略目录中的一些文件。
以下是代码的简短片段:
directory = '/Users/user/Dropbox/'
for dirname, dirnames, filenames in os.walk(directory):
for subdirname in dirnames:
for filename in filenames:
if os.path.isfile(filename):
# collect file info using os.path and os.stat
我显然希望忽略目录。 有更好的方法吗?最好是一种操作系统无关的方法。
dirnames
。你没有使用dirnames
的值。 - Martijn Pietersfor subdirname in dirnames:
循环。 - Martijn Pietersdirectories
列表大多是为了让您可以更改顺序和/或添加或删除要在广度优先搜索中下一步搜索的目录。 - Martijn Pieters