从python中的文本文件中删除一行

时间:2018-04-11 21:55:13

标签: python python-3.x

我想删除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我要求用户输入他们想要删除的人的号码。因此,数字决定删除的内容,因为该行上还有其他项目不会将其删除。

2 个答案:

答案 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)