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

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

while excludedWord in lst:
    lst.remove(excludedWord)

但我会不鼓励这样做,以支持等效的列表理解

关于python - 从python文件中删除特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21005921/

相关文章:

python - Flask-SQLAlchemy 多对多插入

c - 将文件中的所有行读取到数组中

c - 只读取 C 文本文件中的固定列宽

bash - 从文本文件中删除 Unicode 字符 - sed ,其他 Bash/shell 方法

python - 如何使用十六进制 Ascii 中特定位数的字符串格式

python - 如何测试 python 私有(private)方法(是的,我确实有理由测试它们)

python - 如何列出 Python 模块中的导入?

java - 如何在 java/jsp 中使用 split() 读取逗号分隔的文本文件来分隔每个元素

c - 将 "a"、 "an"、 "the"替换为文本文件中的空格

python - 对数组的两个值进行更快的循环操作