首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python比较文本文件-如果不是,则打印

python比较文本文件-如果不是,则打印
EN

Stack Overflow用户
提问于 2018-08-10 05:51:05
回答 1查看 185关注 0票数 1

我有4个文本文件,格式如下

keycountry.txt

代码语言:javascript
复制
UK USA Germany

country.txt

代码语言:javascript
复制
Brexit - UK
USA UK Relations
France win world cup

keylink.txt

代码语言:javascript
复制
www.abc.com
www.ddd.com
www.eee.com

link.txt

代码语言:javascript
复制
www.abc.com
www.eee.com

代码:

代码语言:javascript
复制
import re

keycountryfile = "keycountry.txt"
countryfile = "country.txt"

links = open('links.txt', 'r')
links_data = links.read()
links.close()

keys = open('keylink.txt', 'r')
keys_data = keys.read()
keys.close()

keys_split = keys_data.splitlines()

print('LINKS')
for url in keys_split:
    if url in links_data:
        print(url)
        print("matching")
else:
    print("Not matching")   

keys = set(key.lower() for key in 
    re.findall(r'\w+', open(keycountryfile , "r").readline()))

print("COUNTRY")
with open(countryfile) as f:
    for line in f:
        words = set(word.lower() for word in re.findall(r'\w+', line))
        if keys & words:
            print(line, end='')
            print("matching")
    else:
        print("Not matching")

在代码中,print("matching")重复多次。我知道因为它在循环中,所以它会重复,当没有匹配时,print("Not matching")不会显示。我试着把print语句放在循环的内部和外部,但是我就是不能纠正这个问题。

如果匹配,输出应如下所示:

代码语言:javascript
复制
LINKS
www.abc.com
www.eee.com
matching

COUNTRY
Brexit-UK
USA UK Relations
matching

如果不匹配,输出应该如下所示:

代码语言:javascript
复制
LINKS
Not matching
COUNTRY
Not matching

该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2018-08-10 08:55:39

您可以将结果保存到列表中,并在找到所有匹配项后打印结果。

代码语言:javascript
复制
import re

keycountryfile = '''UK USA Germany'''
countryfile = '''Brexit - UK
USA UK Relations
France win world cup'''

links = '''www.abc.com
www.eee.com'''

links_data = links.split()

keys = '''www.abc.com
www.ddd.com
www.eee.com'''
keys_data = keys.split()


keys_split = keys_data

matching_links = []
not_links = []
for url in keys_split:
    if url in links_data:
        matching_links.append(url)
    else:
        not_links.append(url)

keys = set(keycountryfile.split())

matching_country = []
not_country = []
for line in countryfile.split():
    words = set(word.lower() for word in re.findall(r'\w+', line))
    if keys & words:
        matching_country.append(line)
    else:
        not_country.append(line)

print('LINKS')
if matching_links:
    print('\n'.join(matching_links))
    print("matching")

print("COUNTRY")
print()
if matching_country:
    print('\n'.join(matching_country))
    print("matching")

print('LINKS')
if not_links:
    print('\n'.join(not_links))
print("Not matching")

print("COUNTRY")
if not_country:
    print('\n'.join(not_country))
print("Not matching")

你可以试试这段代码here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51776219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档