【发布时间】:2013-11-18 18:21:15
【问题描述】:
我有一个文件,我需要在特定的行上写一些内容。我知道哪些行并且我想覆盖该行的内容。
例如,我有一个 100 行的文本文件,我想专门写到第 70 行。我知道我可以逐行读取并保留一个计数器,当我到达第 70 行时,我可以写下我需要。我还可以读取文件的全部内容,将其拆分为列表,覆盖我需要的位置并回写。
我正在寻找更简单的东西,例如:
somelibrary.writeline(file, 70, "Blah blah")
在 Python 中有这样的东西吗?
【问题讨论】:
-
您可以将文件加载到内存中,根据需要进行更新,然后将整个文件覆盖回原始文件。 虽然不是很可扩展。
-
可能有一个库可以为这样的事情提供一些方便的方法,但你不能真正让它比通读文件和计算换行符更有效。行有任意长度,因此您不能只从文件开头寻找一些固定的偏移量,并且没有元数据索引行或为您提供有关行长度的信息,所以最终,您只需要遍历每个字符并注意你感兴趣的那些。