我需要在某些文件夹中找到所有git存储库。以前,我使用find . -type -d -name .git
。现在我在Python 3中重写了这个并使用os.walk
。遍历树的过程似乎比简单的find
要长一些。
如何加快速度?
答案 0 :(得分:4)
SO上有许多关于os.walk()
的帖子,它已经慢了。
答案 1 :(得分:1)
如果您的意思是find_repos()
的实施,那么使用os.walk()
可能不是最佳选择。原因是,一旦找到.git
子目录,就不需要进行更深入的搜索。尝试编写自己的目录遍历。您可以查看os.py
中walk
如何实现的来源 - 慢度的原因可能是用Python编写的。
对于新解决方案的其他部分......我注意到你没有编译正则表达式,但我没有检查细节。
我建议将功能与另一个Python脚本分开,然后使用timeit
模块测量解决方案,然后尝试优化。