pathlib.Path().glob() 和多个文件扩展名

新手上路,请多包涵
阅读 2.2k
2 个回答

如果你需要使用 pathlib.Path.glob()

 from pathlib import Path
def get_files(extensions):
    all_files = []
    for ext in extensions:
        all_files.extend(Path('.').glob(ext))
    return all_files

files = get_files(('*.txt', '*.py', '*.cfg'))

原文由 mattjvincent 发布,翻译遵循 CC BY-SA 4.0 许可协议

聚会有点晚了,有几个单行建议不需要编写自定义函数,也不需要使用循环并在 Linux 上工作:

pathlib.Path.glob() 在括号中采用交错符号。对于“.txt”和“.xls”后缀的情况,可以这样写

files = pathlib.Path('temp_dir').glob('*.[tx][xl][ts]')

如果您还需要搜索“.xlsx”,只需在最后一个右括号后附加通配符“*”。

 files = pathlib.Path('temp_dir').glob('*.[tx][xl][ts]*')

需要记住的是,末尾的通配符不仅会捕获“x”,还会捕获最后一个“t”或“s”之后的任何尾随字符。

在搜索模式前加上“**/”将执行前面答案中讨论的递归搜索。

原文由 dnt2s 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏