
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 President
palavra 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 President
for encontrada nessa linha específica. Em seguida, dividiremos a linha em colunas e imprimiremos as colunas de acordo
No entanto, para tais casos, usar awk
pode 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.