我计划使用argparse库编写命令,这是我的命令结构:
$ python cvs.py -d my_adress local diff -r xyz -N -d details
在这里,local有多个命令组合在一起,比如localcommit、localadd等。 E、 g.[-d my_address]在main中解析,本地diff之后的所有开关都由为local diff执行的函数一起解析
类似地,还有另一个与local并行的命令组;比如global。在
开关-d没有与-r混合使用,因此解析-r的解析器不知道-d,反之亦然。在
是否可以使用argparse实现此功能?如果是的,有人能给我一个粗略的算法吗。 如果没有,那么在python中还有什么其他可能的方法来实现呢? 谢谢。在
{{cd2>即参数。 它不会做subparse(我认为argparse根本不能这样做),但它至少会将您的选项分组,这样您将得到}作为单独的选项返回。
-d
和{-N
不是已知选项。我不知道argparse是否会认为这是一个错误(这是您不希望看到的),或者只是-r
的另一个参数。在你的方法可能会失败。CVS子命令可以有各种单字母选项,比如
-d
,-r
,等等(它是a long list)。您会发现自己总是在艰难地选择是否要将特定的CVS选项作为子命令来支持,还是使用字母作为您的cvs.py
选项。在您可以为单独的CVS子命令引入一些标记,例如
python cvs.py -d my_adress local diff § -r xyz -N
。然而,与cvs -d my_adress local diff; cvs -r xyz -N
相比,这并不是真正的改进。在相关问题 更多 >
编程相关推荐