gpt4 book ai didi

python - 从二进制创建十六进制文本文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:13:04 25 4
gpt4 key购买 nike

我想将二进制转换为某种格式的十六进制,并保存为文本文件。

最终产品应该是这样的:

"\x7f\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52"

输入来自可执行文件“a”。这是我当前的代码:

with open('a', 'rb') as f:
byte = f.read(1)
hexbyte = '\\x%02s' % byte
print hexbyte

一些问题:

  1. 这只打印第一个字节。
  2. 结果是“\x”和一个像这样的框:

00
7f

在终端中它看起来完全像这样: enter image description here

为什么会这样?最后,如何将所有十六进制保存到文本文件以获得如上所示的最终结果?

编辑:能够将文件保存为文本

txt = open('out.txt', 'w')
print >> txt, hexbyte
txt.close()

最佳答案

你不能像那样将数字注入(inject)转义序列。转义序列本质上是常量,因此,它们不能有动态部分。

反正已经有一个模块了:

from binascii import hexlify
with open('test', 'rb') as f:
print(hexlify(f.read()).decode('utf-8'))

只需对字节字符串使用 hexlify 函数,它就会为您提供一个十六进制字节字符串。您需要解码将其转换回普通字符串。

不太确定 decode 是否在 Python 2 中工作,但无论如何你真的应该使用 Python 3。

关于python - 从二进制创建十六进制文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22219670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com