Python - 如何逐字节编辑十六进制文件

16 投票
4 回答
35220 浏览
提问于 2025-04-15 13:50

我想打开一个图片文件,然后一个字节一个字节地提取它的十六进制值。我对怎么做完全没有头绪,去网上搜了“python 字节编辑”和“python 字节数组”,居然没找到什么有用的信息。有人能告诉我需要用哪个库,或者可以搜索的具体方法,或者相关的教程和指南吗?

4 个回答

5

Hachoir框架是一个包含Python库和工具的集合,用来解析和编辑二进制文件:

http://pypi.python.org/pypi/hachoir-core

它对一些常见的文件类型有了解,所以这可能正是你所需要的。

11

根据你想做的事情,可能只需要以二进制模式打开文件,然后用普通的文件函数来读取数据就可以了:

# load it
with open("somefile", 'rb') as f:
    data = f.read()

# do something with data
data.reverse()

# save it
with open("somefile.new", 'wb') as f:
    f.write(data)

Python其实并不在乎data这个字符串是“二进制”数据还是“文本”数据。如果你只是想对一个大小适中的文件进行简单的修改,这样做就足够了。

13

Python的标准库里有一个叫做mmap的模块,可以用来做这个事情。想了解更多信息,可以看看这个文档

撰写回答