的Ruby实现Dir
在C中(dir.c
根据本文档,该文件为)。但是,Python等效项是在Python中实现的。
这并不奇怪,Python是低于C性能良好,但是在Python中使用的方法给出了一个有点更大的灵活性- 例如,你可以跳过命名如子树全'.svn'
,'.git'
,'.hg'
在遍历目录层次结构。
在大多数情况下,Python实现足够快。
跳过文件/子目录根本不会影响遍历 速度 ,但是可以肯定地减少了处理目录树所需的总时间,因为您不必遍历主树的潜在大子树。当然,节省的时间与您跳过的时间成正比。在您的情况下,看起来像图像文件夹,您不太可能节省很多时间(除非图像受版本控制,否则跳过版本控制系统拥有的子树可能会产生一些影响)。
跳过文件夹是通过更改dirs
适当的值来完成的:
for root, dirs, files in os.walk(path):
for skip in ('.hg', '.git', '.svn', '.bzr'):
if skip in dirs:
dirs.remove(skip)
# Now process other stuff at this level, i.e.
# in directory "root". The skipped folders
# won't be recursed into.