Python argparse 与选择

mss*_*mss 3 python command-line-arguments argparse

我想使用一些选项从命令行运行我的 python 程序。例如,假设我的程序有 4 种模式,我希望通过为其提供以下参数来使用模式 2:

$ python main.py --mode 2
Run Code Online (Sandbox Code Playgroud)

(模式 1、3、4 也类似)。如何使用 argparse 实现此目的?

Rag*_*use 8

import argparse


parser = argparse.ArgumentParser(description='PROJECT_NAME')
parser.add_argument(
    '--mode', '-m',
    help='Set mode',
    default=1,
    type=int,
    choices=[1,2,3,4],
)
args = parser.parse_args()

print(args.mode)
Run Code Online (Sandbox Code Playgroud)

有关可用选项的完整列表,请访问文档:

https://docs.python.org/3/library/argparse.html


更新:

添加了 MaLiN2223 评论中的建议

  • 我还会以“早期失败”原则的名义添加“type=int”(因此您不必自己执行此操作)。也许还有 `choices=[1,2,3,4]` ? (3认同)