我有两个文件:一个是术语列表,另一个是文本文件。我想打印文本文件而没有第一个文件中的条款。
我试过了:
import codecs
import ast
list_file = codecs.open(list_file).read()
text_file = codecs.open(text_file).read()
import ast
li = ast.literal_eval(list_file)
for l in li:
print(text_file.replace((l, ""))
这里的问题是迭代。有人可以帮忙吗?
答案 0 :(得分:1)
我认为正则表达式有点过分了:
for l in li:
text_file = text_file.replace(l, '')
请记住,在python字符串中不可变意味着它们无法就地编辑。这意味着每次更换时,您都会使用替换执行字符串的副本,并使用此值重新分配text_file
字符串。
答案 1 :(得分:0)
出于某种原因,您要重复替换列表,而不是文本文件行。
我会使用RE module进行替换,如下所示:
subre = re.compile("|".join(li))
我想它应该是:
for tl in text_file:
print re.sub(subre, "", tl)