我需要在文本文件的第一行添加一行,看起来我唯一可用的选项是比我对 python 期望的更多的代码行。是这样的:
f = open('filename','r')
temp = f.read()
f.close()
f = open('filename', 'w')
f.write("#testfirstline")
f.write(temp)
f.close()
没有更简单的方法吗?此外,与打开单个句柄进行读写 (‘r+’) 相比,我更经常看到这个双句柄示例 - 这是为什么?
原文由 Nick 发布,翻译遵循 CC BY-SA 4.0 许可协议
Python 使很多事情变得简单,并包含许多常见操作的库和包装器,但目标不是隐藏基本事实。
您在这里遇到的基本事实是,您通常不能在不重写整个结构的情况下将数据添加到现有的平面结构中。这与语言无关。
有一些方法可以保存文件句柄或降低代码的可读性,其他答案中提供了其中许多方法,但都没有改变基本操作:您必须读入现有文件,然后写出要添加的数据,然后您读入的现有数据。
一定要为自己保存文件句柄,但不要试图将此操作打包到尽可能少的代码行中。事实上,永远不要去寻找最少的代码行——那是混淆,而不是编程。