在python中从文件中删除特定单词

在python中从文件中删除特定单词,python,text-files,Python,Text Files,我是python新手,刚刚开始导入文本文件。我有一个文本文件,其中包含一个单词列表,我想能够输入一个单词,这个单词将从文本文件中删除。有人能解释一下我是怎么做到的吗 text_file=open('FILE.txt', 'r') ListText = text_file.read().split(',') DeletedWord=input('Enter the word you would like to delete:') NewList=(ListText.remove(DeletedWo

我是python新手,刚刚开始导入文本文件。我有一个文本文件,其中包含一个单词列表,我想能够输入一个单词,这个单词将从文本文件中删除。有人能解释一下我是怎么做到的吗

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

到目前为止,我有一个将文件导入到列表中的方法,然后我可以从新列表中删除一个单词,但也希望从文本文件中删除该单词。

以下是我的建议,因为它相当简单,我认为您不关心性能:

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)
将抛出
lst
item
的第一个实例,并且只抛出第一个实例。因此,
项的第二个实例将不会受到
.remove()
的影响。这就是为什么我的解决方案使用列表理解从列表中排除
excludedWord
的所有实例。如果确实要使用
.remove()
,可以执行以下操作:

while excludedWord in lst:
    lst.remove(excludedWord)

但是我不鼓励这样做,因为我们可以替换文件中的字符串(需要一些导入;):

在这里找到这个(可能):


如果“new_string”更改为“”,则这与删除“old_string”相同。

因此我尝试了类似的方法,以下是一些要点,供可能最终阅读此线程的人参考。替换修改内容的唯一方法是以“w”模式打开同一文件。然后python只覆盖现有文件。 我用“re”和sub()试过:


通常,如果你发布你尝试过的东西以及为什么不起作用,问题会变得更好。我更想知道是否有一个通用的功能,比如“del”或者一些总是起作用的功能?不,没有。Python包含了很多东西,但它仍然希望您编写一些代码。如果您不反对使用shell命令,我相信这是可能的,但是@DavidZ是正确的,没有直接的方法在Python@user3130576,请在问题中以代码块的形式发布大代码块(应该有一个“{}”按钮)我已经使用了您建议的内容,效果很好,谢谢,很抱歉我的问题最初不够清晰。@user3130576,没问题,很高兴我能提供帮助!如果我们不喜欢“re”,我们也可以使用它:newline=inputfilecontents.replace(“试用版”),“”)
import os
import sys
import fileinput

for line in fileinput.input('file.txt', inplace=1):
    sys.stdout.write(line.replace('old_string', 'new_string'))
import re
f = open("inputfile.txt", "rt")
inputfilecontents = f.read()
newline = re.sub("trial","",inputfilecontents)
f = open("inputfile.txt","w")
f.write(newline)