Manipular Entrada e Saída em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá os conceitos fundamentais de manipulação de entrada (input) e saída (output) em Python. Exploraremos como exibir informações no console usando a função print() e como obter a entrada do usuário através do teclado.

Além disso, você ganhará experiência prática na escrita de dados em arquivos e na leitura desses dados de volta. Estas são habilidades essenciais para qualquer programa Python que precise interagir com usuários ou trabalhar com dados armazenados em arquivos.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Imprimir Strings no Console

Em Python, a função principal para exibir saída no console é a print(). Seu uso é direto. Nesta etapa, você praticará o uso de print() para exibir texto.

Primeiro, localize o arquivo output.py no explorador de arquivos no lado esquerdo do WebIDE. Dê um duplo clique nele para abri-lo no editor.

Adicione as seguintes linhas de código ao output.py:

print("Hello, LabEx!")
print("This is a Python course.")

Salve o arquivo (você pode usar o atalho Ctrl+S). Para executar este script, abra o terminal na parte inferior do WebIDE e execute o seguinte comando. O terminal já deve estar no diretório ~/project.

python ~/project/output.py

Você verá a seguinte saída no terminal:

Hello, LabEx!
This is a Python course.

A função print() também pode aceitar múltiplos argumentos separados por vírgulas. Por padrão, ela os imprime com um único espaço entre eles.

Modifique o arquivo output.py, substituindo seu conteúdo pela seguinte linha:

print("Apple", "Banana", "Orange", "Grape", "Watermelon")

Salve o arquivo e execute-o novamente a partir do terminal:

python ~/project/output.py

A saída será:

Apple Banana Orange Grape Watermelon

Você pode personalizar o separador usando o parâmetro sep. O valor padrão para sep é um espaço (' '). Vamos alterá-lo para uma barra vertical.

Modifique o output.py mais uma vez:

print("Apple", "Banana", "Orange", "Grape", "Watermelon", sep=" | ")

Salve e execute o script:

python ~/project/output.py

A saída agora usa seu separador personalizado:

Apple | Banana | Orange | Grape | Watermelon

Isso demonstra como você pode controlar o formato da sua saída no console.

Obter Entrada do Usuário pelo Teclado

Até agora, nossos scripts apenas exibiram conteúdo predefinido. Para tornar os programas mais interativos, precisamos obter entrada do usuário. Em Python, você pode fazer isso com a função input().

Encontre e abra o arquivo interactive.py no explorador de arquivos do WebIDE. Adicione o seguinte código a ele:

name = input("Please enter your name: ")
print("Your name is:", name)

A função input() exibe um prompt (mensagem) para o usuário (a string que você passa para ela) e espera que ele digite algo e pressione Enter. O texto digitado pelo usuário é então retornado como uma string, que armazenamos na variável name.

Salve o arquivo e execute o script a partir do terminal:

python ~/project/interactive.py

O script pausará e exibirá o prompt. Digite um nome e pressione Enter.

Please enter your name: Labex User
Your name is: Labex User

O script captura sua entrada e a utiliza na instrução final print(). Esta é uma técnica fundamental para criar aplicações interativas de linha de comando.

Escrever Dados em um Arquivo

Ler e escrever em arquivos são operações de I/O (Entrada/Saída) comuns e essenciais. Python fornece a função nativa open() para lidar com arquivos.

A sintaxe básica é open(filename, mode). O argumento mode especifica como o arquivo será usado. Modos comuns incluem:

  • 'w': Modo de escrita (Write). Cria um novo arquivo para escrita. Se o arquivo já existir, seu conteúdo é apagado.
  • 'r': Modo de leitura (Read). Abre um arquivo existente para leitura. Este é o modo padrão.
  • 'a': Modo de anexação (Append). Abre um arquivo para adicionar conteúdo ao seu final. Se o arquivo não existir, ele é criado.

A maneira recomendada de trabalhar com arquivos é usando a instrução with, que fecha o arquivo automaticamente para você, mesmo que ocorram erros.

Vamos praticar escrevendo algum texto em um arquivo. Abra o arquivo file_io.py no editor do WebIDE e adicione o seguinte código:

with open("book.txt", "w") as f:
    f.write("Bed before bright moonlight,\n")
    f.write("Suspected to be frost on the ground.\n")
    f.write("Head held high, gazing at the bright moon,\n")
    f.write("Head bowed low, thinking of my homeland.")

Este código abre um arquivo chamado book.txt no modo de escrita ('w'). O método f.write() escreve strings no arquivo. O caractere \n representa uma nova linha, então cada chamada de write termina em uma nova linha.

Salve o arquivo e execute o script a partir do terminal:

python ~/project/file_io.py

Este comando não produzirá nenhuma saída no console, mas criará um novo arquivo chamado book.txt no seu diretório ~/project. Você pode visualizar seu conteúdo usando o comando cat no terminal:

cat ~/project/book.txt

A saída deve ser o texto que você escreveu no arquivo:

Bed before bright moonlight,
Suspected to be frost on the ground.
Head held high, gazing at the bright moon,
Head bowed low, thinking of my homeland.

Usar a instrução with é uma boa prática porque garante que o arquivo seja fechado corretamente após a execução do bloco de código.

Ler Dados de um Arquivo

Agora que criamos e escrevemos no book.txt, vamos aprender a ler seu conteúdo. Python oferece vários métodos para ler arquivos. Exploraremos os mais comuns.

Continuaremos trabalhando com o script file_io.py. Você adicionará código para ler o arquivo que acabou de criar.

O Método read()

O método read() lê o conteúdo inteiro de um arquivo e o retorna como uma única string.

Adicione o seguinte código ao final do seu script file_io.py. Isso fará com que o script primeiro escreva no arquivo e, em seguida, o leia novamente e imprima seu conteúdo.

## O código de escrita da etapa anterior deve estar acima disto

print("\n--- Lendo o arquivo inteiro com read() ---")
with open("book.txt", "r") as f:
    content = f.read()
    print(content)

Salve o arquivo e execute-o a partir do terminal:

python ~/project/file_io.py

A saída agora incluirá o conteúdo de book.txt impresso no console:

--- Lendo o arquivo inteiro com read() ---
Bed before bright moonlight,
Suspected to be frost on the ground.
Head held high, gazing at the bright moon,
Head bowed low, thinking of my homeland.

Iterando Sobre Linhas

Uma maneira mais eficiente em termos de memória para ler um arquivo, especialmente um grande, é processá-lo linha por linha. Você pode fazer isso iterando diretamente sobre o objeto arquivo em um loop for.

Agora, adicione este próximo bloco de código ao file_io.py:

print("\n--- Lendo arquivo linha por linha ---")
with open("book.txt", "r") as f:
    for line in f:
        print(line, end='')

Aqui, end='' na função print() evita que ela adicione uma nova linha extra, já que cada line lida do arquivo já termina com um caractere de nova linha (\n).

Salve e execute o script novamente:

python ~/project/file_io.py

A saída para esta seção será idêntica à saída do método read(), mas o processo subjacente é diferente, lendo uma linha de cada vez.

O Método readlines()

O método readlines() lê todas as linhas de um arquivo e as retorna como uma lista de strings.

Finalmente, adicione este último bloco de código ao file_io.py:

print("\n\n--- Lendo todas as linhas com readlines() ---")
with open("book.txt", "r") as f:
    all_lines = f.readlines()
    print(all_lines)

Salve e execute o script pela última vez:

python ~/project/file_io.py

A saída para esta seção será uma lista Python, onde cada elemento é uma string representando uma linha do arquivo:

--- Lendo todas as linhas com readlines() ---
['Bed before bright moonlight,\n', 'Suspected to be frost on the ground.\n', 'Head held high, gazing at the bright moon,\n', 'Head bowed low, thinking of my homeland.']

Você praticou agora os métodos fundamentais para escrever e ler arquivos em Python.

Resumo

Neste laboratório, você aprendeu as técnicas fundamentais para lidar com entrada e saída (I/O) em Python. Você começou usando a função print() para exibir texto formatado no console, incluindo como personalizar separadores. Em seguida, você passou a tornar seus programas interativos capturando a entrada do usuário pelo teclado com a função input().

Finalmente, você explorou as operações de I/O de arquivos. Você aprendeu como escrever dados em um arquivo usando open() no modo de escrita (write mode) com a instrução recomendada with. Você também praticou a leitura de dados de volta de um arquivo usando vários métodos, incluindo read(), iteração linha por linha e readlines(). Essas habilidades são fundamentais para construir aplicações Python mais complexas que interagem com usuários e dados.