Using stringIO
objects for simplicity:
file1 = io.StringIO("""Salt, William (old user)
Wilds, Tony
Smith, William (Old User)
JONES,Steven (Old User)""")
file2 = io.StringIO("""Salt, Bill
Wilds, Tony (SALES)
Smith,Will (OLD USER)
JONES,STEVEN (ACCOUNTS)""")
Read all names into a set:
def read_file(fobj):
names = set()
for line in fobj:
split_line = line.lower().split(',')
names.add((split_line[0], split_line[1].split()[0]))
return names
For each file:
data1 = read_file(file1)
data2 = read_file(file2)
A simple intersection will do:
data1.intersection(data2)
Result:
set([('wilds', 'tony'), ('jones', 'steven')])