Argparse 有类型作为选择

Argparse to have type as choice

我有一些旧代码将 optparse 作为它们的参数库。它的类型作为参数之一

type = "choice"

我正在尝试将我的代码转换为具有 argparse。我应该在类型中输入什么?如果我添加 type = choice 它会抛出一个错误:

NameError: global name 'choice' is not defined

如果我使用 argparse,type 的值应该是多少?

optparse中,choice类型只是string的一种特殊形式。来自 optparse documenattion:

"choice" options are a subtype of "string" options. The choices option attribute (a sequence of strings) defines the set of allowed option arguments.

您无需在 argparse 中将此指定为类型;您需要提供的只是选择。完全删除 type 参数,或者如果你想明确地设置它 str

另见 argparsechoices documentation;这比 optparse 灵活得多,因为这也允许选择字符串以外的类型。