我有一個python腳本,我想提供一個包含通配符的參數(通常是),引用一系列我想要的文件喜歡做東西。例如這裏:防止在UNIX環境中運行時引用非引號python腳本參數中的通配符
#!/usr/bin/env python
import argparse
import glob
parser = argparse.ArgumentParser()
parser.add_argument('-i', action="store", dest="i")
results = parser.parse_args()
print 'argument i is: ', results.i
list_of_matched_files = glob.glob(results.i)
在這種情況下,如果用戶增加了引號,像這樣傳遞的參數一切都很正常:
./test_script.py -i "foo*.txt"
...但很多時候用戶忘記報價添加到參數並在列表僅包含第一個匹配項時被阻止,因爲UNIX已經擴展了列表並且只有argparse才獲得第一個列表元素。
有沒有一種方法(在腳本內)阻止UNIX在將它傳遞給python之前擴展列表?或者,甚至只是爲了測試參數是否不包含引號,然後警告用戶?
查看'sys..argv'來查看'argparse'從shell中獲取的內容。 – hpaulj