python 十六进制值作为输入整数

python hex value as input integers

我正在尝试使用十六进制地址调用 python 脚本,然后向其添加一些偏移量:

import argparse
def main(number):
    print(number+1234)

if __name__ == '__main__':

    parser = argparse.ArgumentParser()
    parser.add_argument("--input",type=int)
    main(number=parser.parse_args().input)

不幸的是,我有一个我似乎无法修复的类型不匹配问题:

$ python hex.py --input=0x000000ab
usage: hex.py [-h] [--input INPUT]
hex.py: error: argument --input: invalid int value: '0x000000ab'

我一定是遗漏了一些直接的解决方案。

这是常见问题解答“字符串不是数字”的变体。你必须转换它,可能是在跳过 0x 前缀之后。

print(int(number.replace("0x", ""),16)+1234)