如何将数据添加到二进制文件?

时间:2013-05-05 18:23:22

标签: python file python-3.x

我有一个很大的二进制文件。我怎么写(prepend)到文件的开头?

例如:

file = 'binary_file'
string = 'bytes_string'

我希望获得内容为bytes_string_binary_file的新文件。

构建open("filename", ab)仅附加。

我正在使用Python 3.3.1。

1 个答案:

答案 0 :(得分:8)

无法预先添加到文件中。您必须完全重写文件:

with open("oldfile", "rb") as old, open("newfile", "wb") as new:
    new.write(string)
    new.write(old.read())

如果您想避免将整个文件读入内存,只需按块读取:

with open("oldfile", "rb") as old, open("newfile", "wb") as new:
    for chunk in iter(lambda: old.read(1024), b""):
        new.write(chunk)

1024替换为最适合您系统的值。 (它是每次读取的字节数。)