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

2024-10-03 02:44:39 发布

您现在位置:Python中文网/ 问答频道 /正文

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

到目前为止,我已经有了这个文件并将其导入到一个列表中,然后我可以从新列表中删除一个单词,但也希望从文本文件中删除该单词。


Tags: texttxt列表readinputopen单词file
2条回答

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

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)将抛出item中的lst的第一个实例,并且只抛出第一个实例。因此item的第二个实例将不会受到.remove()的攻击。这就是为什么我的解决方案使用列表理解从列表中排除excludedWord的所有实例。如果您真的想使用.remove(),可以这样做:

while excludedWord in lst:
    lst.remove(excludedWord)

但我不鼓励这样做,因为我希望你能理解同样的列表

我们可以替换文件中的字符串(需要一些导入;):

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”相同。

相关问题 更多 >