Python 3.0: Gravando dicionários em arquivos
Dica publicada em Python / Manipulação de Arquivos
Python 3.0: Gravando dicionários em arquivos
Dicionário é um recurso interessante do Python que nos permite representar uma coleção de elementos, como a strut do C ou o record do Pascal. Também permite utilizar um índice de qualquer tipo imutável, ao contrário da lista, onde índices são sempre inteiros sequencialmente atribuídos.
Para gravar o dicionário em um arquivo vamos precisar das funções dump e load, disponíveis no modulo pickle. O pickle implementa um algoritmo fundamental, mas que é poderoso para serializar e deserializar uma estrutura de objetos Python (python.org).
O processo é feito convertendo o objeto em uma stream (fluxo de bytes) e gravando o no arquivo (com a função dump). A operação inversa (com a função load) converte o stream gravado no arquivo em um objeto.
Exemplo gravação:
Exemplo leitura:
Saída:
>>> { 'Nome':'Evaldo','Idade':25}
Mais informações:
Para gravar o dicionário em um arquivo vamos precisar das funções dump e load, disponíveis no modulo pickle. O pickle implementa um algoritmo fundamental, mas que é poderoso para serializar e deserializar uma estrutura de objetos Python (python.org).
O processo é feito convertendo o objeto em uma stream (fluxo de bytes) e gravando o no arquivo (com a função dump). A operação inversa (com a função load) converte o stream gravado no arquivo em um objeto.
Exemplo gravação:
import pickle #modulo pickle
dic={ 'Nome':'Evaldo','Idade':25} #dicionário
arq = open('teste.txt','wb') #abrir o arquivo para gravação - o "b" significa que o arquivo é binário
pickle.dump(dic,arq) #Grava uma stream do objeto "dic" para o arquivo.
arq.close() #fechar o arquivo
dic={ 'Nome':'Evaldo','Idade':25} #dicionário
arq = open('teste.txt','wb') #abrir o arquivo para gravação - o "b" significa que o arquivo é binário
pickle.dump(dic,arq) #Grava uma stream do objeto "dic" para o arquivo.
arq.close() #fechar o arquivo
Exemplo leitura:
import pickle #modulo pickle
arq = open('teste.txt','rb') #abrir o arquivo para leitura - o "b" significa que o arquivo é binário
dic = pickle.load(arq)#Ler a stream a partir do arquivo e reconstroi o objeto original.
arq.close() #fechar o arquivo
print (dic) #imprime o conteúdo do dicionário
arq = open('teste.txt','rb') #abrir o arquivo para leitura - o "b" significa que o arquivo é binário
dic = pickle.load(arq)#Ler a stream a partir do arquivo e reconstroi o objeto original.
arq.close() #fechar o arquivo
print (dic) #imprime o conteúdo do dicionário
Saída:
>>> { 'Nome':'Evaldo','Idade':25}
Mais informações:
- pickle - Python object serialization — Python v2.7.1 documentation
- def Python():: Conhecendo os Dicionários