我正在创建一个使用与pacmanArch Linux 相同风格的 python 脚本,总结如下:
prog <operation> [options] [targets]
- 操作的形式是 -X(连字符,大写字母),调用脚本时需要一个。
- 选项的形式是 -x(连字符,小写字母),并且对于不同的操作可能意味着不同的东西。
例如:
pacman -Syu表示使用和选项执行sync操作,使用新软件包升级整个系统。refreshsysupgradepacman -Qu表示使用选项执行query操作upgrades,列出所有过时的包。pacman -Ss <arg>表示使用选项执行sync操作,该search选项期望另一个参数作为要在同步包中搜索的模式。
妙语:
我一直在研究 python 的argparse库,试图弄清楚如何实现它。到目前为止,我遇到了一些问题/设计问题:
argparse只接受以连字符为前缀的参数作为可选参数。当绝对需要一个时,我所有的“操作”都会显示为可选参数。- 我可以让我的脚本有一个“位置”/必需的参数,这将是操作(我必须将操作切换为单词,比如
upgradeoradd),然后是可选参数。然而,这仍然不能解决相同选项符号工作不同的问题,也不会让我轻松列出--help文本中所有支持的操作。
处理这个参数解析的最流畅的方法是什么?我不反对更改命令的用法,但正如我上面所说,据我所知,它似乎对我的情况没有帮助。
谢谢