我想删除python中文本文件中的特定行。例如,在我的文本文件中说:
Ben Walsh - 768
James Cook - 659
Jamie Walsh - 4359
Owen Perkins - 699
Dylan Thomas - 1574
Adam Ward - 987
Allen Woodhouse - 599
我想删除包含数字699
的任何行。
我该怎么做?
我试过用它来解决它,Deleting a specific line in a file (python) 但是,使用Tkinter我要求用户输入他们想要删除的人的号码。因此,数字决定删除的内容,因为该行上还有其他项目不会将其删除。
答案 0 :(得分:0)
首先,打开文件:
f = open("yourfile.txt","r")
接下来,从文件中获取所有行:
lines = f.readlines()
现在您可以关闭文件:
f.close()
以写入模式重新打开它:
f = open("yourfile.txt","w")
然后,将您的行写回,但要删除的行除外。
for line in lines:
if "699" not in line:
f.write(line)
最后,再次关闭文件。
f.close()
答案 1 :(得分:0)
非常简单:
with open(file, "r+") as f:
d = f.readlines()
posdel = num-1
for i in range(0,len(d)):
if i == posdel:
del d[posdel]
with open(file, "w") as textobj:
for n in d:
textobj.write(n)