Tutoriais

Como ler a partir do stdin em Python?

Ana Maria Gomes 14 jun Intermediário 5xp
Compartilhar

Ler a partir da entrada padrão (stdin) é uma tarefa comum para programadores Python, especialmente quando lidam com desafios de code golf ou quando querem processar dados encaminhados de outro programa. Neste post do blog, vamos explorar vários métodos para ler a partir do stdin em Python.

Usando o Módulo fileinput

O módulo fileinput em Python permite que você itere sobre linhas de múltiplas fontes de entrada como se todas estivessem concatenadas em um único fluxo. Isso é particularmente útil quando você quer ler de arquivos listados nos argumentos da linha de comando ou do stdin se nenhum argumento for fornecido.

import fileinput

for line in fileinput.input():
    # Processar a linha
    print(line.rstrip())

Lembre-se de usar line.rstrip() para remover o caractere de nova linha do final de cada linha.

Lendo a partir de sys.stdin

O módulo sys fornece um objeto semelhante a um arquivo chamado sys.stdin, que pode ser usado para ler a entrada diretamente.

import sys

for line in sys.stdin:
    print(line.rstrip())

Este método é direto e funciona bem para ler linhas de entrada até que o EOF (fim do arquivo) seja alcançado.

Usando input() e raw_input()

Python tem funções embutidas para ler a entrada do usuário. Em Python 3, input() é usado para ler uma única linha do stdin e remover a nova linha no final.

name = input("Digite seu nome: ")
print(f"Olá, {name}!")

Em Python 2, a função equivalente é raw_input().

Lendo Toda a Entrada de Uma Vez

Se você precisa ler toda a entrada de uma vez, pode usar sys.stdin.readlines(), que retorna uma lista de todas as linhas até o EOF.

import sys
data = sys.stdin.readlines()
print(f"Contadas {len(data)} linhas.")

Este método é útil quando você precisa processar todos os dados de entrada de uma vez em vez de linha por linha.

Descritores de Arquivo e open()

Em Python 3, você pode usar a função open() com descritores de arquivo. O descritor de arquivo para stdin é 0, então você pode ler a partir do stdin usando open(0).read().

print(open(0).read())

Este método é conciso e pode ser útil para code golfing.

Resumo

Neste post, cobrimos vários métodos para ler a partir do stdin em Python. Seja iterando sobre linhas com fileinput, usando sys.stdin para uma abordagem semelhante a um arquivo, solicitando ao usuário com input(), ou lendo toda a entrada de uma vez com sys.stdin.readlines(), Python oferece uma variedade de ferramentas para lidar com a entrada stdin de forma eficaz. Lembre-se de tratar o caractere de nova linha adequadamente com rstrip() ao processar as linhas. Com estas técnicas, você estará preparado para enfrentar qualquer tarefa que exija leitura a partir do stdin.

Cursos gratuitos para continuar aprendendo

Curso
Grátis · 2h 13min

Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!

Curso
Grátis · 3h 47min

Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!

Curso
Grátis · 4h 11min

Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!

Ver todos os cursos

0 comentários

Exclusivo PRO
Faça parte da discussão

Comente e participe da conversa

Crie sua conta gratuita e compartilhe sua opinião nos comentários.

Entre para a Asimov