我有4个文本文件,格式如下
keycountry.txt
UK USA Germany
country.txt
Brexit - UK
USA UK Relations
France win world cup
keylink.txt
www.abc.com
www.ddd.com
www.eee.com
link.txt
www.abc.com
www.eee.com
代码:
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语句放在循环的内部和外部,但是我就是不能纠正这个问题。
如果匹配,输出应如下所示:
LINKS
www.abc.com
www.eee.com
matching
COUNTRY
Brexit-UK
USA UK Relations
matching
如果不匹配,输出应该如下所示:
LINKS
Not matching
COUNTRY
Not matching
该怎么做呢?
发布于 2018-08-10 08:55:39
您可以将结果保存到列表中,并在找到所有匹配项后打印结果。
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
https://stackoverflow.com/questions/51776219
复制相似问题