Тавк вроде бы достаточно простая задача. Если все ФИО из первого файла помещаются в память, например в dict, то:
1) создаем dict с ключём по ФИО из первого файла и пустым массивом
2) бежим по второму файлу посторочно и проверяем ФИО по ключу, если ключ есть, то добавляем в массив телефон.
3) Сохраняем все записи из dict, где массив не пуст.
# stage 1
all_fio = dict()
with open('myfiofile','r') as fp_fio:
for line in fp_fio:
(_f,_i,_o,_,_) = line.split(';')
_fio = _f+' '+_i +' ' + _o
all_fio[_fio] = []
# stage 2
with open('mybilphonelog','r') as fp_log:
for line in fp_log:
(_t1,_t2,_fio,_) = line.split(';')
if all_fio.has_key(_fio):
all_fio[_fio].append(_t1)
all_fio[_fio].append(_t2)
# stage 3
import json
json.dump(all_fio, open('myresultfile','w'))
PS. код не отлаживал! могут быть апшибки