排除glob.glob()中的文件

问题描述 投票:1回答:2

我的文件夹中有文本文件,我需要遍历并使用python提取数据。要获取所有路径名,我正在使用glob.glob(),除了我需要排除所有名称为'ER'的文件。环顾四周后,我发现了[!_]命令,但是它不起作用。以下是我的确切代码,仍在返回“ ER”文件。

files = glob.glob('*[!ER]*.txt')
python glob
2个回答
0
投票

您拥有文件列表的人,可以使用列表推导来过滤和删除任何包含'ER'的文件。

files = [f for f in files if 'ER' not in f]

0
投票

还有其他可以排除的库。例如,wcmatch(完全公开,我是它的作者)允许您使用排除模式(通过标志启用时)。排除模式与常规模式一起提供,它将过滤返回的文件列表:

from wcmatch import glob
glob.glob(['*.txt', '!*ER*.txt'], flags=glob.N)

这里是一个真实的例子:

from wcmatch import glob
>>> glob.glob(['*.md'], flags=glob.N)
['LICENSE.md', 'README.md']
>>> glob.glob(['*.md', '!*EA*.md'], flags=glob.N)
['LICENSE.md']
© www.soinside.com 2019 - 2024. All rights reserved.