首页 > 解决方案 > 限制命令行参数的组合

问题描述

我写了一个python程序,它接受三个可选的命令行参数。但是我想限制用户输入的参数组合。它们是:

python script.py -all
python script.py --country_name
python script.py --country_name --city_name

我不应该执行任何其他组合程序。

注意:我正在使用 argparse python 模块

标签: pythonpython-3.xargparse

解决方案


我根本不会使用选项,而是可以省略的位置参数。

p = ArgumentParser()
p.add_argument('country', nargs='?')
p.add_argument('city', nargs='?')

然后

script.py           # equiv to old script.py --all
script.py FI        # equiv to old script.py --countryname FI
script.py FI Turku  # equivalent to old script.py --countryname FI --cityname Turku

推荐阅读