我有一个很大的二进制文件。我怎么写(prepend)到文件的开头?
例如:
file = 'binary_file'
string = 'bytes_string'
我希望获得内容为bytes_string_binary_file
的新文件。
构建open("filename", ab)
仅附加。
我正在使用Python 3.3.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
替换为最适合您系统的值。 (它是每次读取的字节数。)