16

我希望能够打开一个图像文件并逐字节添加十六进制值。我不知道如何做到这一点,令人惊讶的是,谷歌搜索“python 字节编辑”和“python 字节数组”并没有提出任何建议。有人可以指出我需要使用的库、我可以用谷歌搜索的具体方法或教程/指南吗?

4

4 回答 4

13

Python 标准库有 mmap 模块,可以用来做这个。查看 文档以获取更多信息。

于 2009-08-24T13:50:13.193 回答
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字符串是否包含“二进制”或“文本”数据。如果您只想对合理大小的文件进行简单修改,这可能就足够了。

于 2009-08-24T13:51:39.167 回答
5

Hachoir 框架是一组用于解析和编辑二进制文件的 Python 库和工具:

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

它具有常见文件类型的知识,因此这可能正是您所需要的。

于 2009-08-24T13:47:51.870 回答
1

查看stuct模块。

该模块执行 Python 值和表示为 Python 字符串的 C 结构之间的转换。它使用格式字符串(如下所述)作为 C 结构布局的简洁描述以及与 Python 值的预期转换。这可用于处理存储在文件中或来自网络连接以及其他来源的二进制数据。

于 2009-08-24T17:09:37.177 回答