访问不带句点的Python CLI参数



我将argparse用于Python CLI,如下所示:

import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--myarg', type=str, help="Dummy arg")
args = parser.parse_args()
# access with dot notation
print(args.myarg)

这很好用。但是,我现在想添加一个名为--continue的参数。尝试使用args.continue访问arg时出现语法错误。

除了点表示法之外,还有其他方法可以访问CLI参数吗?我尝试了类似dict的访问args['continue'],但这给了我TypeError: 'Namespace' object is not subscriptable。我真的需要考虑另一个CLI arg名称吗?

使用vars()返回对象的字典形式(如args(,让您完全按照自己的尝试执行。

args = vars(parser.parse_args())
print(args['continue'])

或者,您可以使用getattr内置函数直接从对象获取属性:

args = parser.parse_args()
print(getattr(args, 'continue')

最新更新