如何将argparse的值存储在变量中?

17 投票
3 回答
26067 浏览
提问于 2025-04-17 23:22

我正在尝试给我的脚本添加命令行选项,使用了以下代码:

import argparse

parser = argparse.ArgumentParser('My program')
parser.add_argument('-x', '--one')
parser.add_argument('-y', '--two')
parser.add_argument('-z', '--three')

args = vars(parser.parse_args())

foo = args['one']
bar = args['two']
cheese = args['three']

这样做对吗?

另外,我该如何从IDLE环境运行它?我用的命令是 'python myprogram.py -x foo -y bar -z cheese',但它给我报了语法错误。

3 个回答

2

获取参数值的标准方法是使用文档中推荐的方式,也就是使用 vars 函数,然后通过参数名称来访问这些值:

argv = vars(args)

one = argv['one']
two = args['two']
three = argv['three']
7

使用 args.__dict__

args.__dict__["one"]
args.__dict__["two"]
args.__dict__["three"]
32

这样做是可以的,但你可以稍微简化一下,像这样:

args = parser.parse_args()

foo = args.one
bar = args.two
cheese = args.three

撰写回答