我想模拟大多数命令行实用程序的行为,其中可选参数可以放置在命令行中的任何位置,包括位置参数之间,如下mkdir例所示:
mkdir before --mode 077 after
在这种情况下,我们知道--mode恰好需要 1 个参数,因此before和after都被视为位置参数。可选部分--mode 077确实可以放在命令行中的任何位置。
但是,对于argparse,以下代码不适用于此示例:
# mkdir.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--mode', nargs=1)
parser.add_argument('dirs', nargs='*')
args = parser.parse_args()
运行./mkdir.py before --mode 077 after结果为:
mkdir.py: error: unrecognized arguments: after
我怎样才能argparse接受位置参数之间的可选参数(具有固定的、已知数量的项目)?
慕田峪7331174
繁星淼淼
相关分类