argparse 可以用来初始化字符串的默认值吗

Can argparse be used to initialize default values for strings

我想为我的 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.

我肯定是误读了文档。缺少什么?

您使用 args = parser.parse_args(),但这并没有定义全局范围内的所有参数。那只是 returns 一个 class 的实例,它具有您的参数的属性。要获得该参数,请使用 args.targFileName。你也可以说 args = vars(parser.parse_args()) 这样你就可以使用 args['targFileName'].