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

python3 glob.glob 正则表达式只得到第一个匹配

python3 glob.glob 正则表达式只得到第一个匹配

慕斯王 2021-07-13 13:10:49
有一个奇怪的问题,因为这段代码似乎在我朋友的 mac 上运行得很好,但在我的 ubuntu 16.04 上根本不起作用。通过我的python,我运行以下filenames = glob.glob(opts['-I'])它试图匹配一组 32 个格式为 TEXT/text01.txt 的文本文件我最初的正则表达式如下python -I TEXT/text??其中返回零文件。我也试过python -I TEXT/text*这似乎只返回 text01.txt。是否有相应的正则表达式可以获取所有文本文件,而不仅仅是第一个,是否有任何理由可以在 mac 而不是 ubuntu 上运行?
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

你打电话时的问题

python -I TEXT/text*

TEXT/text*由外壳展开的。所以这些是传递给 python 的确切参数:

-I TEXT/text01.txt TEXT/text02.txt (and other matching files)

argparser 分配text01.txt-I选项,其他参数被忽略(检查位置参数以找到它们)。glob.glob返回它收到的确切文件名(请注意,text??不匹配,text01.txt因为您缺少扩展名,或者 make it text??.txt

您需要引用您的通配符(不是正则表达式)

python -I "TEXT/text*"

或转义通配符:

python -I TEXT/text\*

或使用更史前的命令行,如 windows CMD,其中通配符按字面传递。


查看完整回答
反对 回复 2021-07-21
  • 1 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信