Python argparse subparser有效用法?

2024-09-30 22:28:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我计划使用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中还有什么其他可能的方法来实现呢? 谢谢。在


Tags: py命令addressmylocalargparsediffdetails
1条回答
网友
1楼 · 发布于 2024-09-30 22:28:04

{{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相比,这并不是真正的改进。在

相关问题 更多 >