如何将二进制文件添加到文件的开头,然后将其删除并将其卸载到内存中?

时间:2018-07-04 04:57:09

标签: python python-3.x io

我需要在二进制文件的开头加上一个二进制文件的一部分(在二进制文件之前)。 我试试这个:

s=b'/00/'
open(file,'rb') as o
r=o.read()
o.close()
h=r.hex()
w=s+h
b=bytearray.fromhex(w)
open(file,'wb')as o
o.write(b)
o.close()

我有内存限制,因此无法使用该算法。我还必须能够从文件中删除此部分,

open(file,"br+") as o
r=o.read()
o.close()
h=r.hex()
s=h.replace('/00/','')
o=open(file,"wb")
w=bytearray.fromhex(s)
o.write(w)
o.close()

我对此有内存限制。 有人可以帮我读写这些文件而无需将它们完全加载到内存中吗?

1 个答案:

答案 0 :(得分:1)

除非要处理与平台相关的低级文件系统操作,否则不可以在不重写整个文件的情况下将字节添加到二进制文件中。

相反,您可以按小块读取和重写文件:

[^\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}\p{Join_Control}]

将1024字节的块大小调整为适合您的内存限制的大小。