删除python中文本文件的第一行
可能重复:删除python中文本文件的第一行,python,Python,可能重复: 我正在编写一个软件,允许用户将数据写入文本文件。但是,我不知道如何删除文本文件的第一行并重写该行。我希望用户能够通过单击按钮并输入一些内容来更新文本文件的第一行,但这需要删除并写入一行新行作为第一行,我不知道如何实现。任何帮助都将不胜感激 编辑: 所以我找到了文件的第一行,并试图写另一行,但这并没有删除前一行 file.seek(0) file.write("This is the new first line \n") 您可以使用readlines获取一个行数组,然后对数组的第
我正在编写一个软件,允许用户将数据写入文本文件。但是,我不知道如何删除文本文件的第一行并重写该行。我希望用户能够通过单击按钮并输入一些内容来更新文本文件的第一行,但这需要删除并写入一行新行作为第一行,我不知道如何实现。任何帮助都将不胜感激 编辑: 所以我找到了文件的第一行,并试图写另一行,但这并没有删除前一行
file.seek(0)
file.write("This is the new first line \n")
您可以使用readlines获取一个行数组,然后对数组的第一个索引使用del。这可能会有帮助 您可以使用readlines获取一个行数组,然后在数组的第一个索引上使用del。这可能会有帮助 您没有描述开始时是如何打开文件的。如果使用
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()
您没有描述开始时是如何打开文件的。如果使用
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()