如何解决在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()
-
如果我可以使用hex()将整数5转换为“ \ x05”,那将对我有很大帮助,但是我得到的却是“ 0x5”。以这种方式添加到文件的文件无效。我确实需要(出于某种原因)使其看起来像“ \ x”和2位数字
-
更重要:我需要添加十进制128(十六进制“ \ x80”)或更大。由于我无法理解的原因,它总是插入“ \ xc2 \ x80”。当我使用原始程序创建相同文件时,它只会添加此“ \ x80”,因此我猜它必须以某种方式工作,但我不知道为什么。
感谢您的任何建议,提示或指导。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。