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

时间:2009-08-24 13:42:53

标签: python byte hex filereader

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

4 个答案:

答案 0 :(得分:10)

根据您的要求,open the file in binary mode可能就足够了,并使用正常的file函数读取数据:

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

答案 1 :(得分:9)

Python标准库有mmap模块,可用于完成此操作。请查看the documentation以获取更多信息。

答案 2 :(得分:4)

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

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

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

答案 3 :(得分:1)

查看stuct模块。

  

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