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

Ton*_*ark 10 python hex byte filereader

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

af.*_*af. 10

Python标准库有mmap模块,可用于完成此操作.查看 文档以获取更多信息.

  • +1。通常,我会按照sth的答案将文件加载到内存中进行编辑,但是如果文件可能很长,则mmap会更好。当然,如果文件非常长,并且无法容纳在您的地址空间中,则返回到open(path,'r + b')和seek()... (2认同)

sth*_*sth 10

根据您的要求,可能足以以二进制模式打开文件并使用普通文件函数读取数据:

# 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)
Run Code Online (Sandbox Code Playgroud)

如果data字符串包含"二进制"或"文本"数据,Python并不在意.如果您只想对合理大小的文件进行简单修改,这可能就足够了.


Eri*_*don 5

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

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

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