假设你的文件是每行一个昵称的格式,使用这个。
首先,打开文件:
f = open("yourfile.txt","r")
接下来,从文件中获取所有行:
lines = f.readlines()
现在你可以closures文件了:
f.close()
并以写入模式重新打开:
f = open("yourfile.txt","w")
然后,写回你的行,除了你想要删除的行。 您可能需要将"\n"更改为文件结尾的任何行。
for line in lines: if line!="nickname_to_delete"+"\n": f.write(line)
最后,再次closures文件。
f.close()
解决这个问题只有一个单一的打开:
f = open("target.txt","r+") d = f.readlines() f.seek(0) for i in d: if i != "line you want to remove...": f.write(i) f.truncate() f.close()
此解决scheme以r / w模式(“r +”)打开文件,并使用seek重置f-指针,然后截断以删除上次写入后的所有内容。
最好和最快的select,而不是将所有内容存储在一个列表中,并重新打开文件来写它,在我看来是在其他地方重写文件。
<