有人问过这个问题已得到解答。虽然,答案不利于我的情况或我想要实现的目标。
我需要更新100个文本文件。我需要在每个文件中更新相同的一行。我想打开一个文本文件,只修改一行。我不想使用write()或writelines()重写文本文件。我也不想使用fileinput.input(),因为它也是使用print语句重写文本文件。
这些文件包含数千行关键数据,我不相信Python会在文件中正确地重新创建所有内容(我知道这可能永远不会发生)。有几行与页脚数据相关,这些行是非关键的,而且是我正在更新的内容。
如何在不重新创建文件的情况下更新文本文件中的单行。在文本中附加一行必须是可能的。
提前致谢
答案 0 :(得分:-1)
我不认为在文件级别的任何编程语言中都可以实现这一点。文件根本不起作用 - 尤其是基于文本的文件,您可能会在中间用不同长度的数据替换它们。您需要原始磁盘级访问(这使得这是一个非常困难的问题)。
如果你真的想要追求它,请查看原始磁盘问题:
Is it possible to get writing access to raw devices using python with windows?
即便如此:我非常确定在某种程度上至少可以从驱动器中读取整个数据块并重新写入(如果我记得,这实际上是驱动器的工作方式)。