的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.


