E/S de arquivo Python: lendo e gravando arquivos com segurança

Aprenda a ler e escrever arquivos em Python. Domine open(), read(), write() e gerenciadores de contexto para lidar com operações de arquivo com segurança sem vazamentos de recursos.

Experimente no Editor

Visão geral

A entrada/saída de arquivo (E/S) é um recurso fundamental que permite que programas Python interajam com o armazenamento persistente de um computador. Esteja você construindo um registrador simples, lendo arquivos de configuração ou processando grandes matrizes de dados, seu programa precisa de uma maneira confiável de abrir, ler, gravar e fechar arquivos no disco. Python fornece funções limpas e integradas para tornar a interação do sistema de arquivos simples e multiplataforma.

A principal ferramenta para acesso a arquivos em Python é a função integrada `open()`. Esta função aceita um caminho de arquivo e uma string de modo. O modo determina como o arquivo é acessado: `'r'` para leitura, `'w'` para gravação (que sobrescreve o arquivo), `'a'` para anexar conteúdo ao final e `'b'` para modo binário (útil para imagens ou dados serializados). Fundamentalmente, sempre que você abre um arquivo, ele consome um identificador do sistema operacional. Se você não conseguir fechar o arquivo, poderá causar vazamentos de memória ou problemas de bloqueio de arquivo.

Para garantir que os arquivos sejam sempre fechados corretamente, os desenvolvedores Python usam a instrução `with`, que implementa um gerenciador de contexto. Ao usar `with open(...) as file:`, Python fecha automaticamente o identificador de arquivo assim que o bloco de código termina, mesmo se ocorrer uma exceção inesperada dentro dele. A leitura dos dados pode ser feita linha por linha usando `for line in file:` ou todos de uma vez via `.read()`, `.readline()` ou `.readlines()`. A escrita de texto é feita via `.write()` ou `.writelines()`, permitindo operações de arquivo suaves, seguras e eficientes.

Saída de código e execução

Escrever uma saudação em um arquivo de texto temporário e lê-lo linha por linha usando gerenciadores de contexto seguros.

file_operations.py
Experimente no Editor
filename = "sample.txt"

# Writing to a file
with open(filename, "w") as file:
    file.write("Hello, Python coder!\n")
    file.write("This is a line in a file.\n")
    file.write("File I/O is simple.\n")

print("File written successfully.\n--- Reading File ---")

# Reading from a file line by line
with open(filename, "r") as file:
    for index, line in enumerate(file, 1):
        print(f"Line {index}: {line.strip()}")
Saída terminal
File written successfully.
--- Reading File ---
Line 1: Hello, Python coder!
Line 2: This is a line in a file.
Line 3: File I/O is simple.

Implementação passo a passo

  • Registrando erros e saída do programa
  • Lendo arquivos de configuração (por exemplo, .env ou config.txt)
  • Salvando relatórios de usuários ou resumos analíticos exportados

Perguntas frequentes

Qual é a diferença entre os modos de gravação e acréscimo?

O modo de gravação ('w') trunca o arquivo para comprimento zero, excluindo qualquer conteúdo existente antes de gravar. O modo de acréscimo ('a') coloca o cursor no final, adicionando novo texto sem excluir o conteúdo existente.

Por que devo usar a instrução with?

A instrução with atua como um gerenciador de contexto, garantindo que os arquivos sejam fechados automaticamente, o que evita vazamentos de memória e erros de bloqueio de arquivos.

Tópicos Relacionados

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.