Módulo 5: Manipulação de Arquivos
Leitura de Arquivos
Lendo um arquivo de texto
python
# Lendo todo o arquivo
with open('arquivo.txt', 'r', encoding='utf-8') as arquivo:
conteudo = arquivo.read()
print(conteudo)
# Lendo linha por linha
with open('arquivo.txt', 'r', encoding='utf-8') as arquivo:
for linha in arquivo:
print(linha.strip()) # strip() remove espaços em branco e quebras de linha
# Lendo todas as linhas em uma lista
with open('arquivo.txt', 'r', encoding='utf-8') as arquivo:
linhas = arquivo.readlines()
Escrita de Arquivos
Escrevendo em um arquivo
python
# Escrevendo texto
with open('novo_arquivo.txt', 'w', encoding='utf-8') as arquivo:
arquivo.write('Primeira linha\n')
arquivo.write('Segunda linha\n')
# Adicionando conteúdo (append)
with open('novo_arquivo.txt', 'a', encoding='utf-8') as arquivo:
arquivo.write('Terceira linha\n')
Manipulação de Arquivos CSV
Trabalhando com arquivos CSV
python
import csv
# Escrevendo em um arquivo CSV
with open('dados.csv', 'w', newline='', encoding='utf-8') as arquivo:
escritor = csv.writer(arquivo)
escritor.writerow(['Nome', 'Idade', 'Cidade'])
escritor.writerow(['João', '25', 'São Paulo'])
escritor.writerow(['Maria', '30', 'Rio de Janeiro'])
# Lendo um arquivo CSV
with open('dados.csv', 'r', encoding='utf-8') as arquivo:
leitor = csv.reader(arquivo)
for linha in leitor:
print(linha)
Manipulação de Arquivos JSON
Trabalhando com arquivos JSON
python
import json
# Escrevendo em um arquivo JSON
dados = {
'nome': 'João',
'idade': 25,
'cidade': 'São Paulo',
'hobbies': ['leitura', 'música', 'esportes']
}
with open('dados.json', 'w', encoding='utf-8') as arquivo:
json.dump(dados, arquivo, indent=4)
# Lendo um arquivo JSON
with open('dados.json', 'r', encoding='utf-8') as arquivo:
dados_lidos = json.load(arquivo)
print(dados_lidos)
Exercícios
Crie um programa que leia um arquivo de texto e conte a quantidade de palavras e linhas.
Faça um programa que crie um arquivo CSV com informações de produtos (nome, preço, quantidade) e depois leia e exiba essas informações.
Crie um programa que gerencie uma lista de tarefas (to-do list) usando um arquivo JSON.
Faça um programa que copie o conteúdo de um arquivo para outro, adicionando numeração nas linhas.