如何将glob与跳过列表结合使用

时间:2018-07-30 15:03:45

标签: python glob

我正在尝试使用glob.glob在一系列目录中读取相同名称的文件,但我想跳过某些特定目录。 我的目录名称类似于trj0001,..,trj0099,我想跳过它们的列表,例如:list = [trj0005,trj0009,trj0011,trj0056,trj0083]。

我当前正在使用此行:

    files = glob.glob(r'my_dir/trj_00*/file.txt')

任何提示都值得赞赏。

2 个答案:

答案 0 :(得分:0)

除非您要匹配除匹配某些模式的文件之外的所有文件,否则没有简单的方法可以在使用glob时跳过某些文件。

因此您可以使用filter

显式地跳过它
exclude_list = [trj0005, trj0009, trj0011, trj0056, trj0083]
files = filter(lambda path: not any(e in path for e in exclude_list), glob.glob(r'my_dir/trj_00*'))

答案 1 :(得分:0)

我建议您使用<chrono>,使用易于理解的列表理解来过滤列表之后,如下所示:

glob