在Python的现有文件前添加一行


问题内容

我需要在文本文件的第一行中添加一行,并且看来对我唯一可用的选项是比我从python期望的更多行。像这样:

f = open('filename','r')
temp = f.read()
f.close()

f = open('filename', 'w')
f.write("#testfirstline")

f.write(temp)
f.close()

有没有更简单的方法?另外,与打开单个手柄进行读写(’r +’)相比,我更经常看到此两个手柄的示例-为什么?


问题答案:

Python使许多事情变得容易,并包含许多常见操作的库和包装器,但目标并非隐藏基本事实。

您在这里遇到的基本事实是,通常无法在不重写整个结构的情况下将数据放在现有的平面结构之前。无论语言如何,都是如此。

有一些方法可以保存文件句柄或使代码的可读性降低,其中许多方法是在其他答案中提供的,但是没有一种方法可以改变基本操作:必须先读取现有文件,然后写出要添加的数据,然后再输入您读入的现有数据。

一定要保存文件句柄,但不要试图将此操作打包到尽可能少的代码行中。实际上,永远不要去寻找最少的代码行-就是混淆,而不是编程。