Trabalhando com Arquivos

En fase de pruebas Atividades: Esta sección está en validación y puede recibir ajustes.

Gestores de contexto

# Sintaxe:
with open('caminho_arquivo', 'modo_de_acesso', encoding='utf-8') as apelido:
  # operação com arquivo
# o arquivo será fechado ao final do bloco with

Utilizamos o “with” para todo o bloco fechar após sua leitura. Do contrário, seria necessário indicarmos o comando ‘.close’ ao final do código.
Fazemos isso pois a codificação pode gerar erros se o arquivo não for fechado devidamente. Com a instrução With, podemos encapsular o bloco que desejamos abrir e fechar, melhorando a estrutura do código.

  • O tipo de dado retornado pelo read() será sempre uma str
ModoDescriçãoExemplo
rAbre o arquivo para leituraopen('info.txt', 'r')
wAbre o arquivo para escrita. Todo conteúdo que estiver dentro do arquivo será sobrescrito. Se o arquivo não
existir, será criado um automaticamente
open('notas.txt', 'w')
xCria um novo arquivo. Caso o arquivo já exista, será retornado um erro pois neste modo o arquivo necessariamente
não pode existir antes de ser aberto
open('config.xml', 'x')
aAbre o arquivo para escrita e insere os dados no final do arquivo. Se o arquivo não existir, será criadoopen('log.txt', 'a')
+Abre o arquivo para leitura e escrita. A escrita sempre ocorrerá no final do arquivoopen('data.csv', 'r+')
MétodoDescrição
read()Lê todo o arquivo se nenhum argumento é fornecido. Caso um argumento do tipo int seja inserido, será retornado a quantidade de caracteres correspondentes ao int apontado
readline()Lê apenas uma linha do arquivo
readlines()Lê o arquivo e transforma cada linha em um elemento de uma lista
write()w - modo utilizado caso o conteúdo do arquivo possa ser apagado; x - para ter certeza que um novo arquivo será criado do zero
append()a - se você quer adicionar conteúdo sem perder os dados já existentes no arquivo
  • Os métodos read() e readlines() não são indicados para uso se o arquivo for muito grande, pois eles colocam todo o conteúdo do arquivo na memória do computador.

 with open("my_file.text") as my_file:
     contents = my_file.read()


>>> import json
>>> with open("cities.json") as cities_file:
...     cities_data = json.load(cities_file)
...     print(cities_data)