如何从os.walk中过滤已知类型的文件?
我有一个从 os.walk
得到的列表。但是我想排除一些目录和文件。我知道怎么排除目录:
for root, dirs, files in os.walk('C:/My_files/test'):
if "Update" in dirs:
dirs.remove("Update")
但是我该怎么排除我知道类型的文件呢?因为这样做是行不通的:
if "*.dat" in files:
files.remove("*.dat")
12 个回答
10
还有一个补充,因为我刚写了这个,然后偶然看到了这个问题:
files = filter(lambda file: not file.endswith('.txt'), files)
注意,在Python 3中,filter会返回一个生成器,而不是一个列表,列表推导式是更受欢迎的选择。
32
排除多个文件扩展名。
files = [ file for file in files if not file.endswith( ('.dat','.tar') ) ]
59
files = [ fi for fi in files if not fi.endswith(".dat") ]
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。