python - 在Python中编码十六进制“40”我做错了什么?
问题描述
我遇到了一个二进制文件(我猜)我尝试使用我的脚本生成,所以也许我做错了,但到目前为止它有效。现在我被卡住了,不觉得我能理解(并且作为二进制文件的菜鸟,无法正确命名问题以谷歌任何答案)..
我将“目标文件”作为二进制文件读取,我发现它就像许多“\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”,所以我想它必须以某种方式工作,但我不知道为什么..
感谢您提供任何建议、提示或方向。
解决方案
推荐阅读
- apache - 无法从不同的网络访问指向 Apache2 服务器的域
- django - “ID为“601664bd3c7d8d38768c43b9”的学校不存在。也许它被删除了?使用 mongorestore 迁移时出错
- php - Laravel AJAX 中的自动填充功能不会出现或自动填充其他输入
- android - 尝试通过flutter run运行android应用程序时出错
- javascript - 转换数据格式(2021 年 2 月 1 日 10:53:00am KST => 2021-02-01 10:53:00am)
- spring - 在两个@StreamListener 中并发消费一条指定消息
- javascript - ComponentFactoryResolver 在角度 11 中传递组件的动态类型 T
- node.js - Discord.js 从消息中获取状态
- python - 使用 Python 读取连接到 4x1 USB 集线器的麦克风
- javascript - 使用 streams().reduce 从 ArrayList 构建一个字符串
?