Como comparar uma palavra de um arquivo de texto com outra palavra?

Como comparar uma palavra de um arquivo de texto com outra palavra?
with open("file.txt") as f:
     for line in f:
         for word in f:
             if word == 'President':
                print('a')

Isso não imprime nada, embora eu tenha a palavra 'presidente' 4 vezes no arquivo de texto. Como posso verificar

Meu arquivo de texto fica assim:

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

Quero que minha saída fique assim:

   Kacey Genicke

   Alexandra Twomey

   Aldous Graddell

   Bernie Jenicek

Eu tentei fazer isso:

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

Isso me dá a primeira carta de cada presidente.

Responder1

O loop interno for word in f:faznãoiterar"palavras"em uma linha, mas faz o mesmo que for line in f- consumir linhas de arquivof.

Para verificar se 'President'a palavra está contida em uma linha, tudo que você precisa é:

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

Para imprimir apenas linhas que começam com Presidentpalavra com prefixo eliminado:

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

Responder2

Em primeiro lugar, acho que é o seu recuo. Você pode tentar o seguinte:

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")

Isso deve imprimir a linha inteira se Presidentfor encontrada nessa linha específica. Em seguida, dividiremos a linha em colunas e imprimiremos as colunas de acordo

No entanto, para tais casos, usar awkpode ser muito mais apropriado que python.

awk '/President/{c++; print $2,$3 } END { printf("There were %d Presidents found\n", c)}' file.txt 
  • Procure pelo presidente
  • Incrementar o contador c.
  • Imprimir segunda e terceira coluna
  • FIM. Imprima o total de ocorrências encontradas.

informação relacionada