如何将特定扩展grep放入列表python3

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (80)

我有一个包含多个文件扩展名的目录,我想在列表中查看具有2个不同扩展名的所有文件的路径。到目前为止,我已经尝试过:

my_files = list(Path(my_dir).glob('**/*.txt' and '**/*.txt.gz'))

但是使用上面的脚本,我只得到.txt.gz文件的路径:

[PosixPath('/home/myproject/cd_4/M_1and2.txt.gz')]

我该如何解决?

提问于
用户回答回答于

正如评论中所提到的,'ptrn1' and ptrn2'总是评估为'ptrn2'

所以你绝对不能通过一个glob电话来做到这一点。glob为每个模式单独调用并合并结果

my_files  = list(Path('test').glob('**/*.txt'))
my_files += list(Path('test').glob('**/*.txt.gz'))

或者作为一个班轮

my_files = [p for ptrn in ['**/*.txt', '**/*.txt.gz'] for p in Path('test').glob(ptrn)]

扫码关注云+社区

领取腾讯云代金券