您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

pythonic方式访问目录列表中的每个文件

5b51 2022/1/14 8:20:16 python 字数 2838 阅读 501 来源 www.jb51.cc/python

我有工作代码,如下所示: # Wow. Much nesting. So spacebar if __name__ == '__main__: for eachDir in list_of_unrelated_directories: for eachFile in os.listdir(eachDir): if eachFile.endswith('.json

概述

# Wow. Much nesting. So spacebar
if __name__ == '__main__:
  for eachDir in list_of_unrelated_directories:
      for eachFile in os.listdir(eachDir):
          if eachFile.endswith('.json'):
            # do stuff here

我想知道是否有一种更优雅的方式.我想不要让我的代码嵌套三层这样深,如果我可以把它变成一个单行的像

for each file that ends with .json in all these directories:
  # do stuff

那将更加令人敬畏.我还编辑了这一点,指出目录不在同一个文件夹中.就像你可能在你的主文件夹和/ tmp文件夹中寻找.json文件一样.所以我不是试图通过单个文件夹递归移动.

这是功能

import os

def files_from_directories(directories,filetype):
    """Yield files of filetype from all directories given."""
    for directory in directories:
        for file in glob.glob(os.path.join(directory,'*' + filetype))
            yield file

现在你的调用代码确实是单行代码

# What a good one-liner!!!!
for json_file in files_from_directories(directories,'.json'):
    # do stuff

所以现在你有一个单行,一个非常清楚.此外,如果您要处理任何其他类型的文件,您可以只使用不同的文件类型重用该函数.

总结

以上是编程之家为你收集整理的pythonic方式访问目录列表中的每个文件全部内容,希望文章能够帮你解决pythonic方式访问目录列表中的每个文件所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶