我有超过100,000个文件分布在多个目录中,现在我可以使用嵌套for循环读取名称和每个文件的路径,像这样,for root, dirs, files in os.walk('python/Lib/email'): for file in files: # some work here无论如何,不使用嵌套循环就可以实现这一目标?读取文件所花的时间比我们预期的要长
1 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
如果问题是打开之后的附加循环,则:
import os
for fpath in (os.path.join(root, fname)
for root, dirs, files
in os.walk(R"python/Lib/email")
for fname
in files):
pass # do something with the path
可以通过多种方式减少执行时间,具体取决于您在“某些工作”模块中的工作。如果您进行了大量其他文件系统检查,则可以例如将fpath包装在pathlib.Path()中。
我建议使用cProfile模块来找出导致代码速度下降的原因。
添加回答
举报
0/150
提交
取消