2014-04-09 122 views
0

我剛開始python3,和IM使用argparse LIB從控制檯輸入解析參數列表。我曾在蟒蛇頁研究手冊和搜查了很多遺憾的是我沒有找到正確的答案:蟒蛇argparse自願部分/分隔符

如何正確地分析一個參數,它有其他字符,然後空格分隔自願組成部分。讓我的例子來說明:

--argument = file.txt的(不含=後空間),我想知道當參數已被使用, 和什麼他的「file.txt的」部分(其可以改變)。是否有某種形式的自願部分替代?

parser.add_argument( ' - 參數= *',行動= ...)#OR所以..

--Thanks

附:可悲的是,空間替代方案不是一種選擇。

回答

1

​​處理一個=加入標誌和論證:

parser.add_argument('--argument',help='your help line here') 

這將接受。

'--argument=file.txt' 
'--argument file.txt' 

默認值是期望一個值nargs=None。如果不給出的默認值是None

16.4.4.1 
For long options (options with names longer than a single character), the option and 
value can also be passed as a single command-line argument, using = to separate them: 

>>> parser.parse_args('--foo=FOO'.split()) 
Namespace(foo='FOO', x=None) 

沒有--,參數爲positional

parser.add_argument('argument',help='your help line here') 

我想通過 '自願' 你的意思是 '可選的'(如文檔中使用)。但現在是必需的。也就是說,如果你不提供文件名,你會得到一個錯誤。