【问题标题】:python open file matching pattern excluding substringpython打开文件匹配模式不包括子字符串
【发布时间】:2015-07-08 13:50:59
【问题描述】:

我需要在 python 的一个文件夹中打开一些文件

说,我的文件夹里有以下文件:

text_pbs.fna
text_pdom_fo_oo.fna
text_pdom_fo_oo_aa.fna
text_pdom_fo_oo.ali
text_pdom_ba_ar.fna
text_pdom_ba_ar_aa.fna
text_pdom_ba_ar.ali
text_pdom_ba_az.fna
text_pdom_ba_az_aa.fna
text_pdom_ba_az.ali

我要打开:

text_pdom_fo_oo.fna
text_pdom_ba_ar.fna
text_pdom_ba_az.fna

只有。

我尝试过使用 glob:

glob.glob('*_pdom_*[^aa].fna')

但它不起作用。 非常感谢指出上述模式中的问题。有没有其他解决方法?

【问题讨论】:

  • glob.glob 到底有什么问题?
  • 它没有占用任何文件。上面的模式不匹配任何东西。
  • 好的,在测试中,glob 似乎无法处理范围匹配的 ^ 部分。
  • 或许,您可以使用*_pdom_*[a-z][b-z].fna*_pdom_*[b-z].fna

标签: python regex wildcard glob


【解决方案1】:

^ 没有处理,必须替换为!,你应该试试这个代码:

import glob
glob.glob('*_pdom_*[!aa].fna')

给出结果:

['text_pdom_fo_oo.fna','text_pdom_ba_ar.fna','text_pdom_ba_az.fna']

【讨论】:

  • 最好把第二个 a 放在括号里,因为它什么也没做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
  • 1970-01-01
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
相关资源
最近更新 更多