这是一个理论问题,因为我没有实际问题,但我想知道......
如果我有一个巨大 文件,比方说很多演出,我想更改一个字节并且我知道那个字节的偏移量,我怎样才能有效地做到这一点?有没有办法在不重写整个文件而只写单个字节的情况下做到这一点?
我在 Python file api 中没有看到任何可以让我写入文件中特定偏移量的内容。
最佳答案
只要不需要insert或delete字节,都可以"r+"
模式打开文件,使用seek
方法将文件对象定位到要更改的字节处,并写出一个字节。
使用较低级别的 os.open
, os.lseek
, os.read
, and os.write
可能更有效不进行任何应用程序级缓冲的操作。
如果您确实需要插入或删除字节,对不起,您运气不好:如果不重写整个文件(从第一次插入或删除)。这是 POSIX(以及 AFAIK 和 Windows)低级文件 API 的限制,而不是 Python 的特定限制。
关于Python - 对大文件的小改动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9739963/