为了账号安全,请及时绑定邮箱和手机立即绑定

排除 glob.glob() 中的文件

排除 glob.glob() 中的文件

拉莫斯之舞 2022-07-12 18:02:31
我在一个文件夹中有文本文件,我需要遍历并使用 python 提取数据。要获取我使用 glob.glob() 的所有路径名,除了我需要排除任何名称中包含“ER”的文件。环顾四周后,我发现了 [!_] 命令,但是它不起作用。下面是我仍然返回“ER”文件的确切代码。files = glob.glob('*[!ER]*.txt')
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

那些你有你的文件列表的人,你可以使用列表理解来过滤和删除任何包含“ER”的文件。

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


查看完整回答
反对 回复 2022-07-12
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

还有其他库可以进行排除。例如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']


查看完整回答
反对 回复 2022-07-12
  • 2 回答
  • 0 关注
  • 242 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号