使用argparse.ArgumentParser方法的python

2024-04-29 09:41:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着学习argparse.ArgumentParser是如何工作的,为此我写了几行:

global firstProduct
global secondProduct 
myparser=argparse.ArgumentParser(description='parser test')
myparser.add_argument("product1",help="enter product1",dest='product_1')
myparser.add_argument("product2",help="enter product2",dest='product_2')

args=myparser.parse_args()

firstProduct=args.product_1
secondProduct=args.product_2

我只想当用户使用两个参数运行这个脚本时,我的代码将它们分别分配给firstProductsecondProduct。但是它不起作用。有人告诉我为什么吗?提前谢谢


Tags: addmyparserargparsehelpargsproductargumentglobal
2条回答

除了unutbu's answer,您还可以使用metavar属性使目标变量和出现在帮助菜单中的变量名不同,如this link

例如,如果您这样做:

myparser.add_argument("firstProduct", metavar="product_1", help="enter product1")

您将在args.firstProduct中获得参数,但在帮助中将其列为product_1

使用位置参数时省略dest参数。为位置参数提供的名称将是参数的名称:

import argparse
myparser = argparse.ArgumentParser(description='parser test')
myparser.add_argument("product_1", help="enter product1")
myparser.add_argument("product_2", help="enter product2")

args = myparser.parse_args()
firstProduct = args.product_1
secondProduct = args.product_2
print(firstProduct, secondProduct)

正在运行% test.py foo bar打印

('foo', 'bar')

相关问题 更多 >