我有一个包含多个文件扩展名的目录,并且我想将包含2个不同扩展名的所有文件的路径grep到列表中。到目前为止,我已经尝试过:
my_files = list(Path(my_dir).glob('**/*.txt' and '**/*.txt.gz'))
但是使用上面的脚本,我只得到了.txt.gz
文件的路径:
[PosixPath('/home/myproject/cd_4/M_1and2.txt.gz')]
我该如何解决?
答案 0 :(得分:0)
如评论中所述,'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)]