Laboratório de Programação — Ciência da Computação • UFPI
Conceitos, tipos (texto × binário), leitura/gravação, modos, with, contagem e exemplos práticos — com syntax highlighting
Visão simplificada da cadeia HW/SO durante uma leitura.
open() em Pythonopen(file, mode='r', ...)f.close() — ou prefira with.meu_arquivo = open('nomes.txt', mode='r')
conteudo = meu_arquivo.read()
print(conteudo)
meu_arquivo.close()
meu_arquivo = open('nomes.txt', mode='r')
for linha in meu_arquivo:
print(linha) # inclui '\n'
meu_arquivo.close()
# Sem pular linha extra:
meu_arquivo = open('nomes.txt', mode='r')
for linha in meu_arquivo:
print(linha, end='') # remove a quebra extra
meu_arquivo.close()
# caracteres
with open('nomes.txt', 'r') as f:
conteudo = f.read()
qtd_caracteres = len(conteudo)
print(f'Chars: {qtd_caracteres}')
# linhas
qtd_linhas = 0
with open('nomes.txt', 'r') as f:
for _ in f:
qtd_linhas += 1
print(f'Linhas: {qtd_linhas}')
meu_arquivo = open('nomes.txt', mode='a')
meu_arquivo.write('Maria Joaquina de Amaral Pereira Goes\n')
meu_arquivo.close()
with open('nomes.txt', 'r') as f:
print(f.read())
with)# Fecha automaticamente (mesmo em erro)
with open('nomes.txt', mode='r') as meu_arquivo:
conteudo = meu_arquivo.read()
print(conteudo)
Evita esquecimentos e vazamentos de recursos.
'r' — leitura (erro se não existir)'a' — anexar (cria se não existir)'w' — escrita sobrescrevendo (cria se não existir)'t' — texto (padrão) • 'b' — bináriowith open('nomes.txt', mode='w') as f:
f.write('Armando Soares Sousa\n')
with open('nomes.txt', mode='r') as f:
print(f.read())
't'): interpreta como Unicode; suporta encoding= e converte quebras de linha.'b'): lê/grava bytes crus; sem codificação.# Arquivo binário (ex.: imagem)
with open("space_picasso.jpeg", "rb") as file:
image_data = file.read()
print(type(image_data), len(image_data)) # bytes, número de bytes
from PIL import Image
image_path = "space_picasso.jpeg"
try:
image = Image.open(image_path) # abre via Pillow
image.show() # visualiza no viewer padrão
except FileNotFoundError:
print(f"Arquivo não encontrado: {image_path}")
Biblioteca: Pillow. Útil para manipular e visualizar imagens.
with open(...).open(..., encoding="utf-8").'a' (acrescentar) vs 'w' (sobrescrever).'rb'/'wb'.nomes.txt e conte linhas, palavras e caracteres.'w').'rb' e imprima quantos bytes possui.# Abrir: open(caminho, mode='r', encoding=None)
# Modos: 'r' ler | 'w' escrever (sobrescreve) | 'a' anexar
# + 't' texto (padrão) | 'b' binário → ex.: 'rb', 'wb'
# Ler: f.read(); f.readline(); iterar por linhas
# Escrever: f.write(), f.writelines()
# Fechar: f.close() # ou use 'with' que fecha sozinho
# Contagem: len(f.read()); sum(1 for _ in f)
# Binário: with open('img.jpg','rb') as f: data = f.read()
open(), with, modos e leitura/gravação.