2014-04-09 64 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') 

我想通过 '自愿' 你的意思是 '可选的'(如文档中使用)。但现在是必需的。也就是说,如果你不提供文件名,你会得到一个错误。