Como ler e escrever arquivos em Python

Ler e escrever em arquivos é uma tarefa comum na programação, e o Python facilita isso com seus recursos de manipulação de arquivos integrados. Entender como trabalhar com arquivos é essencial para qualquer programador Python, pois permite que você manipule armazenamento de dados, registro, gerenciamento de configuração e muito mais. Este guia abordará como abrir, ler, escrever e fechar arquivos no Python, bem como como lidar com diferentes modos de arquivo.

Abrindo e fechando arquivos

Em Python, você usa a função open() para abrir um arquivo. A função open() retorna um objeto de arquivo, que fornece métodos para leitura e escrita. É importante fechar um arquivo depois de terminar de usá-lo usando o método close() para liberar recursos do sistema.

# Opening and closing a file
file = open("example.txt", "r")  # Open file for reading
# Perform file operations
file.close()  # Close the file

Lendo arquivos

Existem várias maneiras de ler o conteúdo de um arquivo em Python, dependendo de suas necessidades:

Leia o arquivo inteiro

O método read() lê todo o conteúdo do arquivo em uma única string.

# Reading the entire file
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

Ler linhas de um arquivo

O método readline() lê uma linha do arquivo, enquanto readlines() lê todas as linhas e as retorna como uma lista.

# Reading lines using readline()
with open("example.txt", "r") as file:
    line = file.readline()
    while line:
        print(line.strip())
        line = file.readline()

# Reading all lines using readlines()
with open("example.txt", "r") as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())

Lendo arquivos linha por linha

O método preferido para ler um arquivo linha por linha é usar um loop for diretamente no objeto de arquivo. Essa abordagem é eficiente em termos de memória, especialmente para arquivos grandes.

# Reading file line by line using a for loop
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())

Escrevendo em arquivos

O Python permite que você escreva em arquivos usando os métodos write() e writelines(). Você precisa abrir o arquivo em um modo que suporte escrita, como 'w' (escrever) ou 'a' (acrescentar).

Escrevendo em um arquivo

O método write() grava uma única string em um arquivo. Abrir um arquivo no modo de gravação 'w' criará um novo arquivo ou sobrescreverá um arquivo existente.

# Writing to a file
with open("output.txt", "w") as file:
    file.write("Hello, World!\n")
    file.write("This is a new line.")

Anexando a um arquivo

Abrir um arquivo no modo de acréscimo 'a' permite que você adicione conteúdo ao final de um arquivo existente sem sobrescrever seu conteúdo.

# Appending to a file
with open("output.txt", "a") as file:
    file.write("\nThis line is appended.")

Escrevendo várias linhas

O método writelines() é usado para escrever múltiplas linhas em um arquivo. Ele espera uma lista de strings, cada uma representando uma linha.

# Writing multiple lines to a file
lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
with open("output.txt", "w") as file:
    file.writelines(lines)

Modos de arquivo

A função open() do Python suporta vários modos para abrir arquivos:

  • 'r' - Modo de leitura (padrão). Abre um arquivo para leitura.
  • 'w' - Modo de gravação. Abre um arquivo para gravação (cria um novo arquivo ou trunca um arquivo existente).
  • 'a' - Modo Append. Abre um arquivo para anexação (cria um novo arquivo se ele não existir).
  • 'r+' - Modo de leitura e escrita. Abre um arquivo para leitura e escrita.
  • 'b' - Modo binário. Abre um arquivo em modo binário (usado com 'rb', 'wb', etc.).

Conclusão

Ler e escrever em arquivos em Python é simples quando você entende os conceitos básicos e os modos de arquivo. Ao dominar o manuseio de arquivos, você pode gerenciar dados de forma eficiente, manipular entrada/saída do usuário e automatizar tarefas que envolvem operações de arquivo. Pratique o uso dessas técnicas para se tornar proficiente no gerenciamento de arquivos em Python.