python3 glob.glob 正则表达式只得到第一个匹配项
python3 glob.glob regex only getting first match
有一点奇怪的问题,因为这段代码似乎在我的朋友 mac 上运行得很好,但在我的 ubuntu 16.04.
上根本不起作用
通过我的python,我运行以下
filenames = glob.glob(opts['-I'])
它正在尝试匹配格式为 TEXT/text01.txt
的一组 32 个文本文件
我最初的正则表达式如下
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
returns 它收到的确切文件名(请注意 text??
与 text01.txt
不匹配,因为您缺少扩展名,或者将其设为 text??.txt
)
您需要引用您的通配符(不是正则表达式)
python -I "TEXT/text*"
或转义通配符:
python -I TEXT/text\*
或使用更原始的命令行,如 windows CMD,其中通配符按字面意思传递。
有一点奇怪的问题,因为这段代码似乎在我的朋友 mac 上运行得很好,但在我的 ubuntu 16.04.
上根本不起作用通过我的python,我运行以下
filenames = glob.glob(opts['-I'])
它正在尝试匹配格式为 TEXT/text01.txt
的一组 32 个文本文件我最初的正则表达式如下
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
returns 它收到的确切文件名(请注意 text??
与 text01.txt
不匹配,因为您缺少扩展名,或者将其设为 text??.txt
)
您需要引用您的通配符(不是正则表达式)
python -I "TEXT/text*"
或转义通配符:
python -I TEXT/text\*
或使用更原始的命令行,如 windows CMD,其中通配符按字面意思传递。