Tamanho de fonte
Alto contraste
Altura de linha

Como ler a partir do stdin em Python?

Avatar de Ana Maria Gomes Ana Maria Gomes
3 minutos de leitura 5 meses atrás

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.

Imagem de um notebook

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
Inicie agora

Comentários

Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov