Python - 对巨大文件的小改动

fth*_*ker 6 python

这是一个理论问题,因为我没有实际问题,但我想知道......

如果我有一个巨大的文件,说很多演出,我想改变一个字节,我知道该字节的偏移量,我怎么能有效地做到这一点?有没有办法在不重写整个文件而只写单个字节的情况下执行此操作?

我没有在Python 文件 api中看到任何可以让我写入文件中的特定偏移量的内容.

zwo*_*wol 8

只要您不需要插入删除字节,就可以在"r+"模式下打开文件,使用该seek方法将文件对象定位在要更改的字节上,并写出一个字节.

这可能是更有效地使用较低水平os.open,os.lseek,os.read,和os.write运营,这没有做任何应用程序级的缓冲.

如果你确实需要插入或删除字节,抱歉,你运气不好:如果不重写整个文件(从第一次插入或删除的角度来看),就没有办法做到这一点.这是POSIX(和AFAIK也是Windows)低级文件API的限制,而不是Python的特定限制.