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

roc*_*raj 1 python file

我需要在第n个字节后附加到文件而不删除以前的内容.

例如,如果我有一个文件包含:"Hello World"
,我寻求位置(5)写"this"我应该得到
"Hello this world"

有没有我应该打开文件的模式?

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

>>> f = open("1.in",'rw+')
>>> f.seek(5)
>>> f.write(' this')
>>> f.close()
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Pau*_* Bu 5

你无法insert在文件中使用.通常做的是:

  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())
Run Code Online (Sandbox Code Playgroud)

现在你必须Hello this world进来new_buffer.在那之后,由你来决定是否用新的或者你想用它做什么来覆盖旧的.

希望这可以帮助!