gpt4 book ai didi

python - 如何访问名称中带点的 python argparse 参数

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:02 26 4
gpt4 key购买 nike

Python 的 argparse 允许我定义名称中包含一个点的参数名称。但是我怎样才能访问这些?

import argparse


parser = argparse.ArgumentParser()
parser.add_argument("inputfile.txt")
parser.add_argument("outputfile.txt")

args = parser.parse_args(['hello', 'world'])

# now args is:
# Namespace(inputfile.txt='hello', outputfile.txt='world')


# and this does not work
print(args.inputfile.txt)
>>> AttributeError: 'Namespace' object has no attribute 'inputfile'

显然,属性名称可以在其名称中使用点来创建,但是如何访问这些名称?

编辑:我的目标是让 argparse 显示 inputfile.txt 名称(例如使用 --help)但调用属性“inputfile”。

在尝试了一些建议之后,最简单的方法是使用 metavar 选项:

parser.add_argument("inputfile", metavar="inputfile.txt")

最佳答案

在内部,argparse 会将所有属性添加到带有 setattrNamespace() 实例中.因此,您可以使用 getattr 访问这些值:

getattr(args, 'inputfile.txt')

但是,这并不直观,通常应避免使用带点的属性名称。建议使用 dest argparse.add_argument 的选项定义您自己的变量来存储该参数的值,正如 hd1 在他们的回答中所建议的那样。

关于python - 如何访问名称中带点的 python argparse 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com