【问题标题】:Write new data into the middle of a file [duplicate]将新数据写入文件中间[重复]
【发布时间】:2011-10-02 18:52:35
【问题描述】:

可能重复:
How do I modify a text file in Python?

写一个新文件,追加到它等等很容易。但是我怎样才能写到一个文件的中间呢?

我有一个通过自动化流程生成的 html 报告,我不想重写整个报告,我只想在新数据处插入新数据。也许我想寻找评论并附加在那里。所以,在<!-- append here -->行之后添加新数据

【问题讨论】:

标签: python file-io


【解决方案1】:

是的。

  1. 读取文件
  2. 修改您需要的内容
  3. 用修改后的版本覆盖文件

如果文件太大而无法放入内存,则将其逐行(或逐块,或任何适合的)读取并写入某个临时文件,然后将其复制而不是原始文件。

【讨论】:

    【解决方案2】:

    尝试 fileObject.seek(offset[, wherece])

    【讨论】:

    • 当打开一个文件追加seek 对写入没有帮助,只对阅读有帮助:无论如何,新的内容都会被写入文件的末尾。
    【解决方案3】:

    如果您的编辑会改变文件的大小,那么您将需要在编辑后重写所有内容(正如 Eli 建议的那样)。如果文件中的某处有大量空白空间,那么您应该能够将新数据重新写入该空白空间而不会影响文件的后面部分(并且您可以使用 file.seek() ,正如 Max 所建议的那样)。

    所以你的想法(留下评论告诉程序在哪里插入数据)应该可以工作,只要评论后面有足够的空白空间来包含你可能放在那里的任何新数据。

    【讨论】:

      猜你喜欢
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      相关资源
      最近更新 更多