我正在尝试在 python 中就地编辑文本文件。它非常大(因此不能将其加载到内存中)。我打算替换我在里面找到的逐字节字符串。
with f as open("filename.txt", "r+b"):
if f.read(8) == "01234567":
f.seek(-8, 1)
f.write("87654321")
但是,当我尝试它时, write() 操作会添加到文件的末尾:
>>> n.read()
'sdf'
>>> n.read(1)
''
>>> n.seek(0,0)
>>> n.read(1)
's'
>>> n.read(1)
'd'
>>> n.write("sdf")
>>> n.read(1)
''
>>> n.seek(0,0)
>>> n.read()
'sdfsdf'
`
我希望结果是sdsdf
.