我正在编写一个python脚本来查找给定目录中的最新zip文件。我刚刚写完了它,但它花了很长时间才能输出大于30 GB的数据。它需要大约45分钟才能运行。有关如何提高脚本运行速度的任何提示?我在Windows 10上使用python 2.7。
import os, glob
from datetime import datetime
def findZip_Dir_list(cwd):
file_dirs = []
for (dirname, dirs, files) in os.walk(cwd):
for filename in files:
if filename.endswith('.zip'):
file_dirs.append(dirname)
return file_dirs
cwd = os.getcwd()
zip_dirs = findZip_Dir_list(cwd)
new_dirs = []
for i in zip_dirs:
if i not in new_dirs:
new_dirs.append(i)
latest_zip = []
for j in new_dirs:
list_of_files = glob.glob(j+'/*.zip')
latest_zip.append(max(list_of_files, key=os.path.getctime))
for k in latest_zip:
print k
提前致谢。
答案 0 :(得分:1)
最好和最简单的想法是使用PyPy。
它是一个非常优化的替代python解释器。但是,如果您使用C语言编写的非标准库模块,您将无法直接使用PyPy。
答案 1 :(得分:1)
没有看到它正在处理的代码和数据,我只能猜测,但如果你只需要找到最新的文件,运行时间应该取决于目录中的文件数量,而不是它们的尺寸。要获取最后一次修改文件,您可以使用os.stat()
作为示例。
编辑: 好的,现在我看到了,这里有一些可以让它更快的东西:
答案 2 :(得分:0)
python中使用的编译器不是紧固件(它不像机器代码那样对比例C),这就是为什么C,C ++等用于程序的原因需要更好的性能。不幸的是,如果不打赌速度更快/效果更好的电脑,我不认为你可以提高速度。
希望这能解释它:)