[英]python3 glob.glob regex only getting first match
有一个奇怪的问题,因为这段代码在我的朋友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
返回它glob.glob
的确切文件名(请注意,由于缺少扩展名, text??
与text01.txt
不匹配,或者将其text01.txt
text??.txt
)
您需要引用通配符(而不是正则表达式)
python -I "TEXT/text*"
或转义通配符:
python -I TEXT/text\*
或者使用更史前的命令行(例如Windows CMD),通配符将按原样传递。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.