我正在使用^{
我什么意思?嗯,我正在创建一个程序来下载/解码MMS消息,我希望用户能够提供电话号码和MMS事务ID来下载数据,或者从已经下载的MMS数据系统中提供一个文件。在
我想要的是这样的,你可以输入2个参数,也可以输入1个参数:
./mms.py (phone mmsid | file)
注意:phone
将是一个电话号码(如15555555555
)、mmsid
一个字符串(MMS事务ID)和file
用户计算机上的文件
用argparse
可以吗?我希望我可以使用add_mutually_exclusive_group
,但这似乎没有达到我想要的效果。在
这会产生错误(删除required=True
会产生相同的错误):
ValueError: mutually exclusive arguments must be optional
它似乎希望我使用--phone
而不是phone
:
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--phone', help='Phone number')
group.add_argument('--mmsid', help='MMS-Transaction-ID to download')
group.add_argument('--file', help='MMS binary file to read')
在不带参数运行程序时,我看到:
error: one of the arguments --phone --mmsid --file is required
这更接近我想要的,但是我能让argparse
做(--phone --msid) or (--file)
?在
这稍微超出了
argparse
所能做的范围,因为第一个参数的“类型”并不提前知道。我会做一些类似的事情要确定}。在
args.file_or_phone
是作为文件名还是电话号码,需要检查args.mmsid
是否是{相关问题 更多 >
编程相关推荐