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