【问题标题】:How to get escaped hex value unescaped in Python如何在 Python 中获得未转义的转义十六进制值
【发布时间】:2012-11-09 11:11:37
【问题描述】:

我在Python中实现了一个简单的文件查找和读取:

>>>f = open("<filepath>", "rb")
>>>f.seek(0x20) #offset 0x20
>>>byte=f.read(4) #4 byte space

我最终得到了

>>>byte
'\xe0\x00\x00\x00'

这是预期的结果,但我需要将其用作没有转义的十六进制值以进行进一步计算。

如何将这样的字符串转换为未转义的十六进制值? (在上面的示例中,'\xe0\x00\x00\x00' 应该转换为 'e0000000' 或 '0xe0000000'。)

【问题讨论】:

    标签: python file-io type-conversion


    【解决方案1】:

    使用encode('hex'):

    >>> byte.encode('hex')
    'e0000000'
    
    # convert it to int
    >>> int(byte.encode('hex'), 16)
    3758096384
    

    【讨论】:

      【解决方案2】:

      您可以使用 byte.encode('hex') 来获取十六进制值。

      【讨论】:

        【解决方案3】:

        您可以使用struct 模块将字节解压缩为一个数字,然后按照您希望的方式进行格式化。

        inport struct
        print '{:08x}'.format(struct.unpack('>I', byte)[0])
        

        输出:

        e0000000
        

        【讨论】:

          猜你喜欢
          • 2015-01-06
          • 2016-12-05
          • 2016-04-22
          • 2015-05-30
          • 1970-01-01
          • 1970-01-01
          • 2016-06-16
          • 2016-08-14
          • 2018-01-22
          相关资源
          最近更新 更多