在这种情况下如何访问可选参数?在
我有一个像
import argparse
parser = argparse.ArgumentParser(prog='some_prog',formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument("tableName")
parser.add_argument("--duration",help = """It is an optional parameter.""")
parser.add_argument("columns",nargs=argparse.REMAINDER)
args = parser.parse_args()
print args.duration
当我执行“python some”时_进度计划T1--duration=1278678-3275678678 column1 column2“使用命令提示符
在参数持续时间没有返回
如何访问“持续时间”?在
请给我建议解决办法。。。在
请让我知道,如果我使用的方式纳格斯是错误的?在
您应该将可选参数放在第一位:
对我来说很好。在
T1将分配给
tableName
,而“column1 column2”将分配给columns
这是因为在获得位置参数
tableName
之后,它将把其余部分作为argparse.REMAINDER
的一部分。在我记得在另一个问题中看到了这个,但我找不到。在
要使您的} 而不是{},并删除{}的定义:
^{pr2}$tableName
作为第一个参数,可以使用^{这将提供:
生成的命名空间是:
columns
抓住了所有东西,REMAINDER
。在如果我给它:
" duration=1278678-3275678678 T1 column1 column2"
,我得到:让我们把
nargs=REMAINDER
改为nargs='*'
。现在第一个案子问题是如何使用可以取零或更多值的位置。请看下面的讨论:https://stackoverflow.com/a/18645430/901925
'Python argparse: Combine optional parameters with nargs=argparse.REMAINDER.
简而言之,}之间的
columns
要么消耗T1
之后的所有内容,要么消耗T1
和{[]
。在将其更改为
nargs='+'
,它就可以工作了。为什么?因为它必须匹配一个或多个字符串。现在它不适合这个差距。在这个问题已经在其他SO线程和Python bug(混合使用选项和位置)中提出
但与此同时,你的选择是:
duration
等选项相关问题 更多 >
编程相关推荐