Python - 对大文件的小改动

标签 python

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

如果我有一个巨大 文件,比方说很多演出,我想更改一个字节并且我知道那个字节的偏移量,我怎样才能有效地做到这一点?有没有办法在不重写整个文件而只写单个字节的情况下做到这一点?

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

最佳答案

只要不需要insertdelete字节,都可以"r+"模式打开文件,使用seek方法将文件对象定位到要更改的字节处,并写出一个字节。

使用较低级别的 os.open, os.lseek, os.read, and os.write 可能更有效不进行任何应用程序级缓冲的操作。

如果您确实需要插入或删除字节,对不起,您运气不好:如果不重写整个文件(从第一次插入或删除)。这是 POSIX(以及 AFAIK 和 Windows)低级文件 API 的限制,而不是 Python 的特定限制。

关于Python - 对大文件的小改动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9739963/

相关文章:

c++ - 如何在 perforce 和 VMS 上对 C++ 进行代码审查/调试/编码/测试/版本控制

python - 为什么我不必在调用 Python 脚本之前添加 'python'?

python - 使用 vlc pip 产生巨大的回声

python - 在 Matplotlib 中旋转图像

python - 为什么 len(<a list object>) 这么慢?

python 多处理示例 itertools 多个列表

python - 使用堆有助于提高字符串重新排列的性能

python - 在 Python 中打印 subprocess.Popen() 输出

python - 在同一类的另一个方法中使用 __init__ 中的变量

python - 替换整个 pandas 数据框中的值