gpt4 book ai didi

python - 获取需要很长时间才能运行的目录中的最新文件

转载 作者:行者123 更新时间:2023-11-30 22:34:28 27 4
gpt4 key购买 nike

我有这段代码可以在目录中查找最新的 zip 文件。该程序运行速度非常快,文件夹很少,但文件夹很多,比如我需要查看的 789 个文件夹,其中有 zip 文件,代码需要 30 多分钟才能生成输出。有关如何使此代码运行得更快的任何提示?

import os, glob

cwd = os.getcwd()

list_of_latest = []
for (dirname, dirs, files) in os.walk(cwd):
for filename in files:
if filename.endswith('.zip'):
list_of_files = glob.glob(dirname + '\*.zip')
latest_file = max(list_of_files, key=os.path.getctime)
if latest_file not in list_of_latest:
list_of_latest.append(latest_file)

for i in list_of_latest:
print i

提前致谢!

最佳答案

您可能没有意识到,您的代码中存在冗余循环。这段代码在这里:

for filename in files:
if filename.endswith('.zip'):
list_of_files = glob.glob(dirname + '\*.zip')

glob.glob 将检索当前目录中的所有 zip 文件(由根路径 dirname 指定)。现在,如果如果该目录中有 10 个 zip 文件,您将运行 glob.glob 10 次!每次都会找到相同的文件。但它仅附加到列表中第一个。

整个内部循环可以简化为如下所示:

for (dirname, dirs, files) in os.walk(cwd):
list_of_files = glob.glob(dirname + '\*.zip')
if len(list_of_files) == 0:
continue
latest_file = max(list_of_files, key=os.path.getctime)

if latest_file not in list_of_latest:
list_of_latest.append(latest_file)

那个内部循环是不必要的。

关于python - 获取需要很长时间才能运行的目录中的最新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44834240/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com