【发布时间】:2019-05-21 22:51:11
【问题描述】:
我必须为我的 python 脚本读取 CLI 参数,然后将用户输入的参数传递给方法。我想为用户提供她可以输入的有效参数列表,例如当您运行带有无效参数或未传递参数的脚本时 - 它表明您只能输入这些参数。
我知道我们可以使用 argparse 模块来实现这一点,但在我的情况下 argparse 将是一个过度杀伤 - 因为我只想将用户提供的任何(有效)参数传递给方法。我应该如何做到这一点?
parser.add_argument('--system-status', '-st', metavar='<host>', type=str)
if args.system-status:
method(args.system-status)
对于其他 5 个变量重复相同的内容?
【问题讨论】:
-
argparse 不是一个繁重的工具,只需 2 行即可设置 1 个参数,并且作为标准库的一部分,因此没有依赖关系。听起来一点也不夸张
-
@Andrei,我有 6 个参数,所以每个参数需要 6 行,然后再将该参数传递给方法,每个参数的 if 条件?例如-如果我有一个名为“myvaribale1”的变量,我需要做 if args.myvariable: method(args.myvariable) 和其他 5 个变量的相同内容。好像有很多重复
-
为什么要重新发明轮子?使用 argparse,特别是如果您不知道如何实现它。并添加您到目前为止所拥有的内容,或者您正在谈论的参数类型。我们现在没什么可做的了。 Minimal, Complete, and Verifiable example
-
@ThePjot 添加了一个示例。
-
无论如何您都需要进行 6 次检查,否则您还希望如何进行检查? :) Argparse 的好处是使“无效参数”和“可能的参数”帮助程序更容易。