使用强制和可选参数创建argparse

时间:2014-08-14 23:41:37

标签: python

我正在尝试编写一个argparse系统,其中包含3个参数,其中1个是可选的。根据第三个参数的存在,程序将决定如何继续。 我目前有这个:

parser = argparse.ArgumentParser(description='Some description')
parser.add_argument('-f', '--first', help='Filename for f', required=True)
parser.add_argument('-s', '--second', help='Filename for s', required=True)
parser.add_argument('-t', '--third', help='Filename for t')
args = parser.parse_args()

if args.third:
    parse.classify(args['first'], args['second'], args['third'])
else:
    parse.classify(args['first'], args['second'], None)

我收到以下错误:TypeError: 'Namespace' object is not subscriptable

1 个答案:

答案 0 :(得分:0)

Namespace个对象不是可订阅的;他们有属性。

parse.classify(args.first, args.second, args.third)

您可以使用vars创建dict

args = vars(args)

然后下标即可。