【发布时间】:2020-11-29 10:07:35
【问题描述】:
如何使用 python argparse 模块解析带 HYPHEN 的参数?
MWE
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-idir','--input-dir')
args = parser.parse_args()
# My attempts
idir = args.idir
idir = args.input-dir
idir = args['input-dir']
print(args)
注意:当然我可以使用下划线 input_dir 但我正在寻找一种用连字符解析参数的方法,例如input-dir
【问题讨论】:
-
这是由规范化参数引起的,这会丢失一些信息。在 argparse 中
--foo=-bar有效,但--foo -bar无效。这是因为 argparse 认为 -bar 是单独的参数。 -
... but I am looking for a way to parse the parameter with hyphen为什么?为什么这有关系?它有什么区别?使用args.input_dir -
@DeepSpace 我继承了一些带有输入参数名称的 bash 脚本,例如
input-dir,我正在将 bash 脚本翻译成 python 脚本。 -
这能回答你的问题吗? Having options in argparse with a dash
-
要使用
args.name语法name必须是一个有效的 Python 变量名。它不能包含-。这就是argparse将您的论点转换为args.input_dir的原因。