Trabalhando com Arquivos
En fase de pruebas Atividades: Esta sección está en validación y puede recibir ajustes.
- Link do Replit
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 umastr
| Modo | Descrição | Exemplo |
|---|---|---|
r | Abre o arquivo para leitura | open('info.txt', 'r') |
w | Abre 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') |
x | Cria 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') |
a | Abre o arquivo para escrita e insere os dados no final do arquivo. Se o arquivo não existir, será criado | open('log.txt', 'a') |
+ | Abre o arquivo para leitura e escrita. A escrita sempre ocorrerá no final do arquivo | open('data.csv', 'r+') |
| Método | Descriçã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()ereadlines()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)