Possible Duplicate:
Editing specific line in text file in python
我正在编写一个允许用户将数据写入文本文件的软件。但是,我不确定如何删除文本文件的第一行并重写该行。我希望用户能够通过单击按钮并输入内容来更新文本文件的第一行,但这需要删除并写入新行作为第一行,我不确定如何实现。任何帮助将不胜感激。
编辑:
所以我找到文件的第一行并尝试写另一行但不会删除前一行。
file.seek(0)
file.write("This is the new first line \n")
您没有描述您一开始是如何打开文件的。如果您使用 file = open(somename, "a")
,该文件将不会被截断,但新数据会写入末尾(即使在大多数(如果不是全部)现代系统上进行搜索之后)。您必须使用“r+”) 打开文件
但是您的示例假定您编写的行的长度与用户键入的内容的长度完全相同。文件中没有行组织,只有字节,其中一些表示行结束。
您需要做的是在内存中为所有行使用一个临时文件或临时缓冲区,然后用第一个替换的行写出这些行。
如果内容适合内存(我认为这是因为很少有用户会输入太多以至于不适合),您应该能够做到:
lines = open(somename, 'r').readlines()
lines[0] = "This is the new first line \n"
file = open(somename, 'w')
for line in lines:
file.write(line)
file.close()