返回包含列表的不同txt文件中的匹配字符串。新行上的每个项目

时间:2013-04-19 19:26:55

标签: python string compare

我对python和编程都很新。 我有两个文本文件。每一个都是一个列表,每个项目都在一个新行上。

我试图在每个列表中找到匹配的字符串,忽略大小写和某些标点符号(“,”,“ - ”,“\ n”)。这就是我到目前为止所做的:

基本上我需要翻译列表项并在2

之间进行比较

List1.txt

Proper Title Here
A Title Here, crap
B Title Here-more crap
C Title Here
D Title Here
E Title Here

List2.txt

Proper Title Here
B Title Here-more crap
Q Title List item

代码:

import re 
list1_file = open("list1.txt", "r")
list2_file = open("list2.txt", "r")

list1 = list1_file.readlines()
list2 = list2_file.readlines()

for eachlistone in list1:
    list1nosp = eachlistone.replace(" ", "")

for eachlisttwo in list2:
    list2nosp = eachlisttwo.replace(" ", "")

应输出:

Proper Title Here
B Title Here-more crap

1 个答案:

答案 0 :(得分:0)

在第一个列表中读取并删除不需要的标点符号

data = file1.read()
data = data.lower() #make it all lowercase
data = re.sub("[,-]","",data) #replace unwanted punctuation
list1= data.splitlines() 

对第二个列表执行相同的操作

data = file2.read()
data = data.lower() #make it all lowercase
data = re.sub("[,-]","",data) #replace unwanted punctuation
list2= data.splitlines() 

然后只打印两个列表的交集

print "\n".join(set(list1).intersection(list2))