我有一个包含多个文件扩展名的目录,我想要将所有具有2个不同扩展名的文件的路径放入一个列表中。到目前为止,我已经尝试过:
my_files = list(Path(my_dir).glob('**/*.txt' and '**/*.txt.gz'))
但是使用上面的脚本,我只获得了.txt.gz
文件的路径:
[PosixPath('/home/myproject/cd_4/M_1and2.txt.gz')]
我怎么才能修复它?
发布于 2018-07-09 04:36:48
正如在注释中提到的,'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)]
https://stackoverflow.com/questions/51232381
复制相似问题