Python Парсер файла и вывод

Всем доброго дня! Помогите пожалуйста написать программу, которая бы работала через аргумент, в котором можно ввести Имя или Фамилию, программа открывает нужный файл с списком ФИО и прочими данными, из этого файла выбираются все фамилии если есть совпадения и подсчитывается их количество. К примеру если фамилий 5, то в конце выведется найдено 5 человек и т.д


Ответы (1 шт):

Автор решения: Стас

Просто прокручивается весь список имён, находятся совпадения и дополняются до полных имён. Пример вывода:

Иванович
Людей найдено 2 

Петров Василий Иванович 
Сизов Иван Иванович

Код:

f = open('in.txt', 'r') #для чтения русских символов файл для чтения
#должен быть в кодировке ANCI
tmp=f.read()
f.close()
names = tmp.replace("\n"," ")
names = names.split(" ") #ФИО разделяются на отдельные слова и отправляются в список

name = input()
i = 0
tmp = 0
l = []
while i < len(names): #находится кол-во совпадений и их полные имена
    if names[i] == name:
        tmp += 1
        if i % 3 == 0:
            l.append(names[i]) #это дополнения совпадений до полных имён
            l.append(names[i+1])
            l.append(names[i+2])
        elif i % 3 == 1:
            l.append(names[i-1])
            l.append(names[i])
            l.append(names[i+1])
        else:

            l.append(names[i-2])
            l.append(names[i-1])
            l.append(names[i])

    i+=1

i = 0
print("Людей найдено",tmp,"\n") #вывод
tmp = ''
while i < len(l):
    tmp += l[i]
    tmp += " "
    t = i + 1
    if (t % 3) == 0:
        print(tmp)
        tmp = ""
    i += 1

Файл для тестов in.txt:

Петров Василий Иванович
Сизов Иван Иванович
Потапов Владимир Сергеевич
Ильин Александр Владимирович
→ Ссылка