Печать только указанных c слов из файла .txt - Python - PullRequest
1 голос
/ 19 января 2020

Любая помощь по следующему вопросу будет принята с благодарностью.

У меня есть следующий текстовый файл с именем DOB:

Orville Wright 21 July 1988
Rogelio Holloway 13 September 1988
Marjorie Figueroa 9 October 1988
Debra Garner 7 February 1988
Tiffany Peters 25 July 1988
Hugh Foster 2 June 1988
Darren Christensen 21 January 1988
Shelia Harrison 28 July 1988
Ignacio James 12 September 1988
Jerry Keller 30 February 1988
Frankie Cobb 1 July 1988
Clayton Thomas 10 December 1988
Laura Reyes 9 November 1988
Danny Jensen 19 September 1988
Sabrina Garcia 20 October 1988
Winifred Wood 27 July 1988
Juan Kennedy 4 March 1988
Nina Beck 7 May 1988
Tanya Marshall 22 May 1988
Kelly Gardner 16 August 1988
Cristina Ortega 13 January 1988
Guy Carr 21 June 1988
Geneva Martinez 5 September 1988
Ricardo Howell 23 December 1988
Bernadette Rios 19 July 1988

Мне нужно напечатать все имена и даты рождения в следующем примере формата:

Name:   
O Wright

Birthdate:
21 July 1988

Мой код ниже печатает первый символ прописными буквами, как мне нужно, но как после этого отделить указанные c слова и распечатать их из текстового файла ?

Код, который у меня пока есть:

f = open('DOB.txt', 'r+')
for line in f:
    f = line[0] + ". "
    print(f)
g = open('DOB.txt')
for g in g.read().split():
    print(g)

1 Ответ

3 голосов
/ 19 января 2020

Если предположить, что каждое имя - это только имя и фамилия, никаких отчеств и т. Д. c. Вы можете просто прочитать каждую строку файла и разбить на основе пробела. Ниже приведены первые поля в поле first и last, а затем остальные поля в dob. Тогда мы можем просто напечатать две строки, используя наши переменные. нет необходимости l oop через данные файла дважды.

with open('test.txt') as my_file:
    for person in my_file:
        first, last, *dob = person.rstrip().split()
        print(f"Name: {first[0]}. {last}")
        print(f"Birthdate: {' '.join(dob)}")

OUTPUT

Name: O. Wright
Birthdate: 21 July 1988
Name: R. Holloway
Birthdate: 13 September 1988
Name: M. Figueroa
Birthdate: 9 October 1988
...