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

2024-06-17 10:39:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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()

我的内存有限。 有人能帮我读写这些文件而不把它们完全载入内存吗


Tags: 文件内存算法closereadas二进制open
1条回答
网友
1楼 · 发布于 2024-06-17 10:39:04

除非您想处理依赖于平台的低级文件系统操作,否则在不重写整个文件的情况下,无法将字节预先写入二进制文件

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

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

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

相关问题 更多 >