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:
Петров Василий Иванович
Сизов Иван Иванович
Потапов Владимир Сергеевич
Ильин Александр Владимирович