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 de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários