我需要在某些文件夹中找到所有 git 存储库。以前,我使用find . -type -d -name .git
. 现在我用 Python 3 重写了它并使用os.walk
. 它似乎比简单的遍历树需要更长的时间find
。
我怎样才能加快速度?
我需要在某些文件夹中找到所有 git 存储库。以前,我使用find . -type -d -name .git
. 现在我用 Python 3 重写了它并使用os.walk
. 它似乎比简单的遍历树需要更长的时间find
。
我怎样才能加快速度?
SO上有很多线程os.walk()
,它非常慢。
如果您的意思是 的实现find_repos()
,那么 usingos.walk()
可能不是最佳的。原因是一旦找到.git
子目录,就不需要再深入搜索了。尝试编写自己的目录遍历。您可以查看os.py
有关如何实现的来源——缓慢walk
的原因可能是它是用 Python 编写的。
对于您的新解决方案的其他部分...我注意到您没有编译正则表达式,但我没有检查详细信息。
我建议将功能分离到另一个 Python 脚本中,然后使用timeit
模块测量解决方案,然后尝试优化。