如何在python命令行中传递字符串,并用argparse将其解释为32位无符号十六进制值

时间:2019-07-10 17:44:42

标签: python argparse

我认为标题大体上总结了我想做的事情。我对python非常满意,会说我真的不知道我的选择是什么。

如果我有一个像这样调用的python脚本,请这样说:

python myscript.py --this_takes_an_unsigned_hex_value 0x80018001

我希望将0x80018001解释为也是无符号的32位十六进制值。

我搜索了其他几乎可以解决但并非完全可行的答案。

类似这样的参数:

parser.add_argument('--this_takes_an_unsigned_hex_value', help='--this_takes_an_unsigned_hex_value value', type=lambda x: int(x,0))
如果值为0x7FFF7FFF,则

将起作用,但对于设置了最高有效位的任何内容而言,

都将起作用。如果我尝试0x80018001,我会得到:

root:CRITICAL: <class 'OverflowError'>: signed integer is greater than maximum

最简单的方法是停止对我传递的值进行这种带符号的解释?它应该适合十六进制字符串的无符号解释。

0 个答案:

没有答案