Python argparse:“;“未被认可的论点”;
我正在尝试使用命令行选项的程序。这是我的密码:Python argparse:“;“未被认可的论点”;,python,command-line,Python,Command Line,我正在尝试使用命令行选项的程序。这是我的密码: import argparse def main(): parser = argparse.ArgumentParser() parser.add_argument("-u","--upgrade", help="fully automatized upgrade") args = parser.parse_args() if args.upgrade: print "Starting with
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-u","--upgrade", help="fully automatized upgrade")
args = parser.parse_args()
if args.upgrade:
print "Starting with upgrade procedure"
main()
当我尝试从终端(
python script.py-u
)运行我的程序时,我希望从升级过程开始得到消息,但相反,我得到了错误消息未识别的参数-u
,您得到的错误是因为-u
在它之后需要一个值。如果您使用pythonscript.py-h
,您将在用法声明中找到它,上面写着[-u升级]
如果要将其用作布尔值或标志(如果使用了-u
,则为true),请添加一个附加参数action
:
parser.add_argument("-u","--upgrade", help="fully automatized upgrade", action="store_true")
操作
-在命令行遇到此参数时要采取的基本操作类型
使用action=“store_true”
,如果指定了选项-u
,则值true将分配给参数。升级
。不指定它意味着False
来源:当前,您的参数也需要为其传入一个值
如果希望将-u
作为选项,请使用for不需要值的参数
范例-
parser.add_argument("-u","--upgrade", help="fully automatized upgrade", action='store_true')
对于布尔参数,请使用action=“store\u true”:
请参阅:我没有看到任何错误消息,我正在收到您的ExpecpExpected输出;我想这可能是因为程序中的空格,请验证[viswesn.viswesn PC]➤ python script.py-u 10从升级过程开始[viswesn.viswesn PC]➤ python script.py-u用法:script.py[-h][-u-UPGRADE]script.py:错误:参数-u/--UPGRADE:应为一个参数此处唯一的问题是-u
应为一个值或某种类型。尝试执行python myscript.py-u True
parser.add_argument("-u","--upgrade", help="fully automatized upgrade", action="store_true")