Как сравнить слово из текстового файла с другим словом?

Как сравнить слово из текстового файла с другим словом?
with open("file.txt") as f:
     for line in f:
         for word in f:
             if word == 'President':
                print('a')

Это ничего не печатает, хотя у меня есть слово 'президент' 4 раза в текстовом файле. Как мне сделать, чтобы он проверял

Мой текстовый файл выглядит так:

President Kacey Genicke

President Alexandra Twomey

President Aldous Graddell

President Bernie Jenicek

Officer Cyrill Vernazza

Officer Sutton Spier

Officer Isabella Seer

Officer Abbey Holdforth

Faculty Officer Lennie Lomaz

Faculty Officer Brant Howle

Faculty Officer Dionysus Summerbell

Faculty Officer Calhoun Duguid

Faculty Officer Tremain Arnaez

Faculty Officer Mirabella Trathan

Faculty Officer Dex Darcy

Я хочу, чтобы мой вывод выглядел так:

   Kacey Genicke

   Alexandra Twomey

   Aldous Graddell

   Bernie Jenicek

Я попробовал сделать так:

with open("file.txt") as f:
    for line in f:
            if 'President' in line:
                print(line[10])

Это даёт мне первую букву имени каждого президента.

решение1

Внутренний цикл for word in f:делаетнетповторить"слова"в строке, но делает то же самое, что и for line in f- потребляя строки файлаf.

Чтобы проверить, 'President'содержится ли слово в строке, вам нужно всего лишь:

with open("file.txt") as f:
     for line in f:
         if 'President' in line:
             print('a')

Чтобы напечатать только строки, начинающиеся со Presidentслова с удаленным префиксом:

with open("file.txt") as f:
     for line in f:
         if line.startswith('President'):
             print(line.replace('President', '').strip())

решение2

Прежде всего, я думаю, что это ваш отступ. Вы можете попробовать следующее:

with open('file.txt') as f:
    count = 0 
    for line in f:
        columns = line.split() 
        if len(columns) > 1 and 'President' in line:  
            print(columns[1], columns[2])
            count += 1
    print("There are ", count, "Presidents found")

Это должно вывести всю строку, если Presidentона найдена в этой конкретной строке. Затем мы разделим строку на столбцы и выведем столбцы соответственно

Однако в таких случаях использование awkможет оказаться гораздо более подходящим, чем python.

awk '/President/{c++; print $2,$3 } END { printf("There were %d Presidents found\n", c)}' file.txt 
  • Поиск президента
  • Увеличить счетчик c.
  • Распечатать второй и третий столбец
  • КОНЕЦ. Вывести общее количество найденных вхождений.

Связанный контент