我试图学习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

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

最佳答案

使用位置参数时,请省略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')

关于python - 使用argparse.ArgumentParser方法的python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18335687/

10-10 14:05