我正在编写一个允许用户将数据写入文本文件的软件。但是,我不知道如何删除文本文件的第一行并重写该行。我希望用户能够通过单击按钮并输入某些内容来更新文本文件的第一行,但这需要删除并编写新行作为第一行,我不确定如何实现。任何帮助将不胜感激。
编辑:
所以我找到了文件的第一行,并尝试写另一行,但这并没有删除上一行。
file.seek(0)
file.write("This is the new first line \n")
答案 0 :(得分:3)
您没有描述如何打开文件。如果您使用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()
答案 1 :(得分:1)
您可以使用readlines获取行数组,然后在数组的第一个索引上使用del。这可能有所帮助。 http://www.daniweb.com/software-development/python/threads/68765/how-to-remove-a-number-of-lines-from-a-text-file-