在Python中编码十六进制“ 40”怎么办?

问题描述

我遇到了一个二进制文件(我猜),我尝试使用脚本生成文件,所以也许我做错了,但是到目前为止它仍然有效。现在我陷入困境,感觉不到我能理解(作为二进制文件的菜鸟,无法正确地将问题命名为Google的任何答案)。

我将“目标文件”读取为二进制文件,发现它就像许多“ \ x00”,中间有多个数值(例如“ \ x05”)。

我的工作是这样的:

def myEncode(a):
    if   a == 2: A = "\x02"
    elif a == 5: A = "\x05"
    return(A)

line = "\x00\x00\x01" + myEncode(5) + "\x00"
phrase = bytearray(line.encode("utf-8"))
f = open("outfile","ab")
f. write(phrase)
f.close()
  1. 如果我可以使用hex()将整数5转换为“ \ x05”,那将对我有很大帮助,但是我得到的却是“ 0x5”。以这种方式添加文件文件无效。我确实需要(出于某种原因)使其看起来像“ \ x”和2位数字

  2. 更重要:我需要添加十进制128(十六进制“ \ x80”)或更大。由于我无法理解的原因,它总是插入“ \ xc2 \ x80”。当我使用原始程序创建相同文件时,它只会添加此“ \ x80”,因此我猜它必须以某种方式工作,但我不知道为什么。

感谢您的任何建议,提示或指导。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)