有一個奇怪的問題,因為這段代碼似乎在我朋友的 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條經(jīng)驗 獲得超8個贊
你打電話時的問題
python -I TEXT/text*
是TEXT/text*
由外殼展開的。所以這些是傳遞給 python 的確切參數(shù):
-I TEXT/text01.txt TEXT/text02.txt (and other matching files)
argparser 分配text01.txt
給-I
選項,其他參數(shù)被忽略(檢查位置參數(shù)以找到它們)。glob.glob
返回它收到的確切文件名(請注意,text??
不匹配,text01.txt
因為您缺少擴展名,或者 make it text??.txt
)
您需要引用您的通配符(不是正則表達式)
python -I "TEXT/text*"
或轉(zhuǎn)義通配符:
python -I TEXT/text\*
或使用更史前的命令行,如 windows CMD,其中通配符按字面?zhèn)鬟f。
添加回答
舉報
0/150
提交
取消