为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕森卡 2021-03-29 08:09:55
我有超过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模块来找出导致代码速度下降的原因。


查看完整回答
反对 回复 2021-04-13
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信