Skip to main content
 首页 » 编程设计

python之在 python 中的第 n 个字节之后追加到文件

2025年05月04日16java哥

我需要在第 n 个字节后追加到文件而不删除之前的内容。

例如, 如果我有一个文件包含:“Hello World”
我想在 position(5) 上写“this” 我应该得到
“你好这个世界”

有什么模式可以打开文件吗??

目前我的代码替换字符
并给出“Hello thisd”

>>> f = open("1.in",'rw+') 
>>> f.seek(5) 
>>> f.write(' this') 
>>> f.close() 

有什么建议吗?

请您参考如下方法:

您无法在文件中插入。通常的做法是:

  1. 有两个缓冲区,旧文件和要添加内容的新文件
  2. 从旧的复制到新的,直到你想插入新内容的点
  3. 在新文件中插入新内容
  4. 继续从旧缓冲区写入新缓冲区
  5. (可选)用新文件替换旧文件。

在 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。之后,由您决定是用新的覆盖旧的,还是用它做任何您想做的事情。

希望这对您有所帮助!