【问题标题】:How to change byte on specific addres如何更改特定地址的字节
【发布时间】:2012-09-22 11:23:17
【问题描述】:

我需要编写程序来更改特定地址中文件中的字节。我只能使用 python 2.2 它是游戏的模块,所以...我读过一次关于 mmap 的文章,但我在 python 2.2 中找不到它

【问题讨论】:

  • 文件是否足够小,可以一次读入内存?
  • 您可以使用此答案中的代码来解决类似的问题:[How to overwrite some bytes in the middle of a file with Python?][1] [1]: stackoverflow.com/a/509014/1400944

标签: python file byte python-2.2


【解决方案1】:

您最好的选择是直接操作文件;这适用于 Python 版本,即 1.x、2.x、3.x。这里有一些粗略的大纲可以帮助您入门......如果您执行实际的伪代码,如果不是完全正确的 Python,它可能会非常接近:

  1. 为“r+b”打开文件(读/写;对于 POSIX 系统,您也可以只使用“r+”)
  2. 转到有问题的特定字节(使用文件的tell() 方法)
  3. 写出您要更改的单个字节(使用文件的write() 方法)
  4. 关闭文件(使用文件的close()方法)

【讨论】:

  • 好点。在 POSIX 系统中,不需要它,因为它们默认使用二进制模式,但如果您在 PC 上,则需要您描述的“b”。已编辑...谢谢!
  • w4m w/o MacOS 中的“b”...你能澄清一下吗?
  • 如果您知道r+b 适用于包括MacOS 在内的所有 平台,为什么还要使用在某些平台上不起作用的'r+'?此外,b 传达了程序员读取字节(数据,而不是文本)的意图,它也适用于 Python 3。
  • 去一次,去两次,卖掉。
猜你喜欢
  • 2021-03-02
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 2011-07-02
  • 2014-05-13
相关资源
最近更新 更多