【发布时间】:2020-11-27 03:43:06
【问题描述】:
我对 Python 非常陌生,我正在尝试比较两个文件并使用函数获取差异。第一个文件包含英文单词 - 一个接一个(engwrds.txt),第二个文件是网络抓取文本的文本文件(ws.txt)。我想要实现的是比较这两个文件并从 ws.txt 中删除单词并将其写入另一个文件。在网络抓取的文件中有单词和句子。但在另一个文件中,单词是一个接一个地放置的。
我尝试了下面的代码,但它创建了一个空白输出文件。
with open('ws.txt', 'r', encoding='utf-8') as file1:
with open('engwrds.txt', 'r', encoding='utf-8') as file2:
same = set(file1).intersection(file2)
same.discard('\n')
with open('output_file.txt', 'w', encoding='utf-8') as file_out:
for line in same:
file_out.write(line)
然后我尝试了这个,它根本不打印任何输出。
from pathlib import Path
with open('engwrds.txt', 'r', encoding='utf-8') as fin:
exclude = set(line.rstrip() for line in fin)
with fileinput.input('ws.txt', inplace=True) as f:
for line in f:
if not exclude.intersection(Path(line.rstrip()).parts):
print(line, end='')
即使是下面的代码也不会打印任何输出。
with open('op11-Copy1.txt', 'r') as file1:
with open('commonwords.txt', 'r') as file2:
dif = set(file1).difference(file2)
dif.discard('\n')
with open('diff.txt', 'w') as file_out:
for line in dif:
file_out.write(line)
你能解释一下我在这里犯的错误吗?我提到了多个示例,例如this、this。但我无法弄清楚这个问题。理想情况下,我想提出一个可以完成这项任务的功能。任何帮助表示赞赏!非常感谢您。
【问题讨论】:
标签: python compare difference write