我有一个文本文件,其中包含来自五个不同文本文件(alltext.txt)的文本
我还有一个文本文件,每行上都有单词,需要将其从alltext文件(badwords.txt)中删除。
如何在不创建新的alltext文件的情况下执行此操作,而只是从badwords.txt中删除单词? 我是python的新手。
已更新:
text=open('alltext.txt').read().split()
other_words = open('badwords.txt').readline()
for line in text:
for word in other_words:
if word == other_words:
text.remove(word)
答案 0 :(得分:0)
这是一种或两种方法,具体取决于您想对重复的单词进行什么操作。
alltext = [ "alpha", "beta", "gamma", "delta", "foo", "bar" ]
badwords = [ "foo", "bar" ]
newtext = [ word for word in alltext if word not in set(badwords) ]
newtext = [ word for word in set(alltext) if word not in set(badwords) ]
这两个数据都返回['alpha', 'beta', 'delta', 'gamma']
,但是前者将在alltext
中保留重复项,而后者将“唯一化”新文本。
答案 1 :(得分:0)
bad = set([ line.strip() for line in open('badwords.txt') ])
good = [ ' '.join([ word for word in line.strip().split() if word not in bad ]) for line in open('alltext.txt') ]
out = open('alltext.txt','w')
for line in good:
out.write(line+'\n')
out.close()