gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 17:05:40 31 4
gpt4 key购买 nike

有一点奇怪的问题,因为这段代码似乎在我 friend 的 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 上运行?

最佳答案

调用时的问题

python -I TEXT/text*

TEXT/text*被shell扩展了。所以这些是传递给 python 的确切参数:

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

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

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

python -I "TEXT/text*"

或者转义通配符:

python -I TEXT/text\*

或使用更原始的命令行,如 windows CMD,其中通配符按字面意思传递。

关于python3 glob.glob 正则表达式只得到第一个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52854180/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com