Introdução
A entrada/saída (I/O) de arquivos é um aspecto fundamental da programação Python. Se você precisa ler dados de um arquivo, gravar resultados em um log ou processar diferentes formatos de arquivo para sua aplicação, dominar a E/S de arquivos é essencial. Neste tutorial, exploraremos vários métodos para lidar com operações de arquivo em Python, incluindo leitura e gravação de arquivos de texto e processamento de arquivos CSV e JSON. Esses exemplos práticos ajudarão você a gerenciar os dados do seu projeto com eficiência.
Lendo arquivos
Lendo um arquivo de texto
Você pode ler um arquivo usando a função open() integrada ao Python. Veja como ler um arquivo de texto inteiro de uma vez:
#|label: reading-text-file
# Abrir um arquivo de texto no modo de leitura
file = open("example.txt", "r")
content = file.read()
file.close()
print(content)Uma abordagem melhor é usar a instrução with para garantir que o arquivo seja fechado corretamente:
#|label: reading-with-with
with open("example.txt", "r") as file:
content = file.read()
print(content)Lendo arquivos linha por linha
Para arquivos grandes, é mais eficiente ler uma linha por vez:
#|label: reading-line-by-line
with open("example.txt", "r") as file:
for line in file:
print(line.strip())Gravando arquivos
Escrevendo em um arquivo de texto
Gravar dados em um arquivo é semelhante a ler. Use a função open() com o modo de gravação 'w':
#|label: writing-text-file
data = "This is a sample text to be written to a file."
with open("output.txt", "w") as file:
file.write(data)Anexando a um arquivo
Para adicionar conteúdo sem sobrescrever o arquivo existente, use o modo append 'a':
#|label: appending-text-file
additional_data = "\nThis line is appended."
with open("output.txt", "a") as file:
file.write(additional_data)Processamento de vários formatos de arquivo
Lendo um arquivo CSV
Você pode processar arquivos CSV facilmente com o módulo csv ou Pandas. Aqui está um exemplo usando o módulo csv integrado ao Python:
#|label: read-csv
import csv
with open("data.csv", newline="") as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)Alternativamente, usando Pandas:
#|label: read-csv-pandas
import pandas as pd
df = pd.read_csv("data.csv")
print(df.head())Lendo um arquivo JSON
O processamento de arquivos JSON é simples com o módulo json do Python:
#|label: read-json
import json
with open("data.json", "r") as file:
data = json.load(file)
print(data)Escrevendo um arquivo JSON
Você também pode gravar dados JSON em um arquivo:
#|label: write-json
data = {"name": "Alice", "age": 30, "city": "New York"}
with open("output.json", "w") as file:
json.dump(data, file, indent=4)Melhores práticas para E/S de arquivos
- Use a instrução
with:
Sempre usewithpara lidar com arquivos, garantindo que eles sejam fechados automaticamente. - Tratamento de erros:
Implemente blocos try/except para tratar erros de E/S com elegância. - Arquivos grandes:
Para arquivos grandes, considere processá-los linha por linha ou em blocos para evitar o uso excessivo de memória. - Codificação:
Esteja atento à codificação de arquivos, especialmente ao lidar com caracteres não ASCII. Use o parâmetroencodingemopen(), se necessário.
Conclusão
Dominar a E/S de arquivos em Python é crucial para gerenciar dados de maneira eficaz. Esteja você lendo, escrevendo ou processando vários formatos de arquivo, como CSV e JSON, as técnicas abordadas neste tutorial ajudarão você a lidar com arquivos de maneira eficiente e robusta em seus projetos. Experimente esses exemplos e adapte-os às suas necessidades.
Leitura adicional
- Entendendo as compreensões de lista do Python
- Guia completo para estruturas de dados Python
- Trabalhando com JSON em Python: análise e serialização
Boa programação e aproveite o gerenciamento de seus arquivos com Python!
Explore mais artigos
Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.
Reuso
Citação
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Tratamento de E/S de arquivos em Python: ler, gravar e
processar arquivos},
date = {2024-02-09},
url = {https://www.datanovia.com/pt/learn/programming/python/additional-tutorials/file-io.html},
langid = {pt}
}
