我试图在两个不同的文件之间找到相同的单词/文本,但没有得到我正在寻找的结果。
我尝试逐行比较,但没有得到结果
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.com
和 uod2quk646.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/