python - 使用 python 逐文本比较两个不同的文件

标签 python python-3.x

我试图在两个不同的文件之间找到相同的单词/文本,但没有得到我正在寻找的结果。

我尝试逐行比较,但没有得到结果

with open('top_1k_domain.txt', 'r') as file1:
with open('latesteasylist.txt', 'r') as file2:
    same = set(file1).intersection(file2)

 same.discard('\n')

 with open('some_output_file1.txt', 'w') as file_out:
for line in same:
    file_out.write(line)

就像我的第一个包含文本的文件

 google.com
 youtube.com
 facebook.com
 doublepimp.com
 uod2quk646.com
 qq.com
 yahoo.com
 tmall.com

第二个文件包含的位置

 ||doublepimp.com^$third-party
 ||uod2quk646.com^$third-party
 ....etc

它没有产生我正在寻找的输出,应该有 doublepimp.comuod2quk646.com 在 some_output_file1.txt 文件中,但它是空的。任何人都可以在这里帮助我

最佳答案

通过使用集合交集,两个集合中的项目仅在相同的情况下才会匹配,但在两个文件的情况下则不然,因为第二个文件中的行不仅包含域名,还包含域名其他 AdBlock 语法。

在与第一个文件中的行执行集合交集之前,您应该从第二个文件中的行中提取域名部分:

import re
same = set(file1).intersection((re.findall(r'[a-z0-9.-]+', line) or [''])[0] + '\n' for line in file2)

关于python - 使用 python 逐文本比较两个不同的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55312479/

相关文章:

python - Lookahead 更新字典列表

python - 如何在 Django 中使用模板调用模型上的自定义方法?

python - 如何修复错误:invalid literal for int() with base 10: 'Luck' ?

python - TypeError : Can't instantiate abstract class <. ..> 使用抽象方法

python-3.x - 使用 Python API 将正文添加到云调度程序请求

python - Selenium 测试 - 测试单击按钮是否打开正确的项目

python - 字符串替换不适用于 html 插入

python - 如何在 jupyter-notebook 中逐行执行代码?

python - 来自 tensorflow /模型的警告 : Please use alternatives such as official/mnist/dataset. py

python-3.x - 可以将我的临时文件放入我的应用程序中的 tmp/目录吗?