代码之家  ›  专栏  ›  技术社区  ›  probat

Python 3+如何编辑文本文件中的行

  •  0
  • probat  · 技术社区  · 6 年前

    这一问题已经被提出,并且得到了回答。尽管如此,答案并不利于我的处境或我正在努力实现的目标。

    我有100个文本文件需要更新。我需要更新每个文件中的同一行。我想打开一个文本文件,只修改一行。我不想使用write()或writelines()重新写入文本文件。我也不想使用fileinput。input(),因为这也是使用print语句重新写入文本文件。

    这些文件包含数千行关键数据,我不能相信Python会在文件中正确地重新创建所有内容(我知道这可能永远不会发生)。有几行与页脚数据有关,这是非关键的,这就是我正在更新的内容。

    如何在不重新创建文件的情况下更新文本文件中的一行。必须可以在文本中追加一行。

    提前感谢

    1 回复  |  直到 6 年前
        1
  •  -1
  •   soundstripe    6 年前

    我认为这在文件级的任何编程语言中都是不可能的。文件根本不是这样工作的——尤其是基于文本的文件,您可能会用在中间不同长度的数据替换这些文件。您需要原始磁盘级别的访问(这是一个非常困难的问题)。

    如果您真的想继续,请检查此处的原始磁盘问题:

    Is it possible to get writing access to raw devices using python with windows?

    即使这样:我很确定在某种程度上,至少会从驱动器中读取并重新写入整个数据块(如果我记得的话,这就是驱动器的物理工作方式)。