在文件中间写入新数据

4 投票
3 回答
8339 浏览
提问于 2025-04-16 21:15

可能重复的问题:
我该如何在Python中修改一个文本文件?

写一个新文件、在文件后面添加内容这些都很简单。但是,我该如何在文件的中间写入内容呢?

我有一个HTML报告,它是通过自动化的过程生成的。我不想重写整个报告,只想在需要的地方插入新数据。比如,我想找一个注释,然后在那儿添加内容。也就是说,我想在这一行后面添加新数据:<!-- append here -->

3 个回答

0

如果你修改的内容会改变文件的大小,那么你就需要把修改之后的所有内容都重新写一遍(就像Eli说的那样)。如果文件里有很多空白区域,你可以直接在这些空白地方写入新数据,而不会影响到文件后面的内容(这时你可以用file.seek(),正如Max所建议的)。

所以你的想法(在程序里留个注释,告诉它在哪里插入数据)是可行的,只要这个注释后面有足够的空白空间来放置你可能添加的新数据。

0

尝试使用 fileObject.seek(offset[, whence]) 这个方法。

6

是的。

  1. 先把文件读进来
  2. 修改你需要的内容
  3. 用修改后的版本覆盖原来的文件

如果文件太大,放不进内存,可以一行一行(或者按块,或者其他适合的方法)读写到一个临时文件里,然后再把这个临时文件复制回原来的文件位置。

撰写回答