我有超过100,000个文件分布在多个目录中,现在,我可以使用嵌套的for
循环来读取名称和每个文件的路径,
for root, dirs, files in os.walk('python/Lib/email'):
for file in files:
# some work here
是否有任何不使用嵌套循环的方法来实现这一目标?读取文件的时间比我们预期的要长
答案 0 :(得分:1)
如果问题是打开之后的附加循环,则:
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模块来找出导致代码速度下降的原因。