我想为我的Python脚本(3.4)初始化基本变量,同时为最终用户提供通过命令行选项更改这些变量定义的机会。看起来像argparse是要走的路。我看了here开始使用,这对我的所有用例都有用,除了下面的用例:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--con',dest='targFileName',default='targets.con')
args = parser.parse_args()
print(targFileName)
导致错误:
bash-4.1$ python test.py
Traceback (most recent call last):
File "test.py", line 7, in <module>
print(targFileName)
NameError: name 'targFileName' is not defined.
我当然误读了这份文件。有什么遗漏?
答案 0 :(得分:1)
您使用args = parser.parse_args()
,但这并未定义全局范围内的所有参数。这只返回一个具有参数属性的类的实例。要获得该参数,请使用args.targFileName
。您也可以说args = vars(parser.parse_args())
,以便使用args['targFileName']
。