【问题标题】:Deleting a line from text file in python从python中的文本文件中删除一行
【发布时间】:2018-09-21 22:10:52
【问题描述】:

我想在 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 我要求用户输入他们要删除的人的号码。所以数字决定了要删除的内容,因为行中有其他项目它不会删除它。

【问题讨论】:

标签: python python-3.x


【解决方案1】:

首先,打开文件:

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()

【讨论】:

    【解决方案2】:

    很简单:

        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)
    

    【讨论】:

      猜你喜欢
      • 2023-02-08
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多