我需要在第 n 个字节后追加到文件而不删除之前的内容。
例如, 如果我有一个文件包含:“Hello World”
我想在 position(5) 上写“this” 我应该得到
“你好这个世界”
有什么模式可以打开文件吗??
目前我的代码替换字符
并给出“Hello thisd”
>>> f = open("1.in",'rw+')
>>> f.seek(5)
>>> f.write(' this')
>>> f.close()
有什么建议吗?
请您参考如下方法:
您无法在文件中插入。通常的做法是:
- 有两个缓冲区,旧文件和要添加内容的新文件
- 从旧的复制到新的,直到你想插入新内容的点
- 在新文件中插入新内容
- 继续从旧缓冲区写入新缓冲区
- (可选)用新文件替换旧文件。
在 python 中它应该是这样的:
nth_byte = 5
with open('old_file_path', 'r') as old_buffer, open('new_file_path', 'w') as new_buffer:
# copy until nth byte
new_buffer.write(old_buffer.read(nth_byte))
# insert new content
new_buffer.write('this')
# copy the rest of the file
new_buffer.write(old_buffer.read())
现在你必须在 new_buffer 中有 Hello this world。之后,由您决定是用新的覆盖旧的,还是用它做任何您想做的事情。
希望这对您有所帮助!
