猿问

在不使用嵌套循环的情况下读取文件和文件夹

我有超过100,000个文件分布在多个目录中,现在我可以使用嵌套for循环读取名称和每个文件的路径,像这样,


for root, dirs, files in os.walk('python/Lib/email'):

     for file in files:

        # some work here

无论如何,不使用嵌套循环就可以实现这一目标?读取文件所花的时间比我们预期的要长


慕森卡
浏览 153回答 1
1回答

芜湖不芜

如果问题是打开之后的附加循环,则:import osfor 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模块来找出导致代码速度下降的原因。
随时随地看视频慕课网APP

相关分类

Python
我要回答