Вы находитесь на странице: 1из 2

Ficheiros de dados (em formato texto)

À semelhança da maioria das linguagens de programação, o Python permite criar e usar ficheiros de dados
formatados como carateres. Isto significa que o conteúdo destes ficheiros é do tipo texto e, portanto, pode
ser visualizado em qualquer ferramenta que trabalhe com ficheiros de texto, por exemplo, o bloco de notas
do Windows, ou um editor de texto usado na programação (como o do Matlab, ou o do Spyder).

Como sabemos, os ficheiros são entidades que existem em memória secundária (os discos rígidos, ou os
SSD, por exemplo). Como também sabemos, os programas apenas conseguem aceder diretamente à
informação que esteja em objetos (variáveis, por exemplo) na memória principal (a RAM). Portanto, para
que os programas consigam aceder à informação guardada no disco é necessário copia-la previamente para
objetos que estejam na RAM.

As operações que um programa pode executar para utilizar um ficheiro são:

 abrir o ficheiro – cria um objeto na RAM que contém toda a informação acerca do ficheiro (por
exemplo: o nome do ficheiro e a sua localização no disco) que permita ao programa comunicar com
o sistema operativo para aceder ao ficheiro. Para isso, usamos a função open(). Exemplo:

fichalu = open("dados_alunos")

Esta operação criou um file object com o nome fichalu, que irá pemitir ao programa aceder ao
ficheiro que, no disco, tem o nome dados_alunos. Após a abertura do ficheiro, o programa passa a
usar apenas o objeto fichalu sempre que for necessário aceder ao ficheiro.

 fechar o ficheiro – elimina o file object que foi criado ao abrir o ficheiro, fazendo com que o
programa deixe de poder aceder ao ficheiro. Para isso, invoca-se o método close() desse file object.
Exemplo:

fichalu.close()

O programador coloca uma instrução no programa, para fechar o ficheiro, quando o programa já não
vai precisar mais de aceder ao ficheiro. Esta operação é importante para libertar o espaço de
memória que estava ocupado pelo file object.

 ler dados do ficheiro – depois de aberto o ficheiro, podemos ler os dados nele contidos invocando
um método para leitura do file object que representa o ficheiro. Exemplo:

fichalu.read()

Este exemplo usou o método read(), que retorna a totalidade do conteúdo do o ficheiro numa
string.

Mas se o ficheiro for muito grande, ler todo o seu conteúdo para uma string pode esgotar a memória
que o sistema operativo reservou para o programa. Para evitar esse problema podemos especificar
quantos carateres queremos que sejam lidos. Exemplo:

fichalu.read(30)
Neste exemplo a string retornada pelo método read() já conterá apenas 30 carateres.

Também é frequente usar-se o método que permite ler uma linha de cada vez. Exemplo:

fichalu.readline()

Esta operação retorna uma string contendo uma linha do ficheiro, terminada com um carater de
fim-de-linha (\n).

Para além dos métodos read() e readline() existe também o método readlines(). Este método
retorna uma lista de strings. Estas strings são equivalentes às que seriam obtidas lendo todo o
ficheiro com invocações sucessivas do método readline().

Sempre que é executada uma operação de leitura dum ficheiro, o seu file object não se esquece de
qual é o próximo caráter a ler numa próxima operação de leitura. Pode verificar isso executando
várias operações de leitura consecutivas. Experimente:

fichalu.read(5)
fichalu.read(5)
fichalu.read(5)

Pode saber qual é o número do próximo caráter a ser lido usando o método tell(). Experimente:

fichalu.tell()

Depois de já ter sido lido todo o conteúdo dum ficheiro, a execução de outra operação de leitura
(com qualquer destes métodos) retorna a string vazia ("").

Pode posicionar o cursor do file object num dado caráter, usando o método seek(). Experimente:

fichalu.seek(10)
fichalu.read(5)

Se pretender voltar a ler a partir do início do ficheiro, pode usar seek(0). Alternativamente, pode
fecar o ficheiro e voltar a abri-lo.

Вам также может понравиться