从Python中的文件删除特定词(Deleting a specific word from a f

2019-10-19 04:36发布

我很新的蟒蛇和刚开始导入文本文件。 我有一个包含单词的列表,我希望能够进入一个词,这个词从文本文件中删除一个文本文件。 任何人都可以解释我是如何能做到这一点?

text_file=open('FILE.txt', 'r')
ListText = text_file.read().split(',')
DeletedWord=input('Enter the word you would like to delete:')
NewList=(ListText.remove(DeletedWord))

我有这个迄今为止这需要的文件,并将其导入到一个列表,然后我就可以在新的列表中删除一个字,但想从文本文件也删除单词。

Answer 1:

这里是因为它的相当简单的东西,我会建议,我不认为你关心的性能:

f = open("file.txt",'r')
lines = f.readlines()
f.close()

excludedWord = "whatever you want to get rid of"

newLines = []
for line in lines:
    newLines.append(' '.join([word for word in line.split() if word != excludedWord]))

f = open("file.txt", 'w')
for line in lines:
    f.write("{}\n".format(line))
f.close()

这允许线有它多个字,但它会很好的工作,如果有每行只有一个字

为响应更新的问题:

您不能直接编辑文件(或至少我不知道如何),而必须让所有的Python的内容,对其进行编辑,然后重新编写与修改内容的文件

还有一点要注意, lst.remove(item)将抛出的第一个实例itemlst ,只有第一个。 因此,二审item将是安全的.remove() 这就是为什么我的解决方案使用列表理解为排除的所有实例excludedWord从列表中。 如果你真的想用.remove()你可以这样做:

while excludedWord in lst:
    lst.remove(excludedWord)

但我赞成鼓励这样的等价列表解析



Answer 2:

我们可以替换文件字符串(部分进口需要;)):

import os
import sys
import fileinput

for line in fileinput.input('file.txt', inplace=1):
    sys.stdout.write(line.replace('old_string', 'new_string'))

找到这个(可能)在这里: http://effbot.org/librarybook/fileinput.htm

如果“new_string”改变',那么这将是一样的,删除“old_string”。



文章来源: Deleting a specific word from a file in python