Examinei as informações que os documentos do Python fornecem, mas ainda estou um pouco confuso. Alguém poderia postar um exemplo de código que gravaria um novo arquivo e depois usar pickle para despejar um dicionário nele?
python
dictionary
pickle
Chachmu
fonte
fonte
Respostas:
Tente o seguinte:
fonte
pickle.HIGHEST_PROTOCOL
?__slots__
). Não estou dizendo que você sempre deve usarHIGHEST_PROTOCOL
, mas garantir que você não use o protocolo 0 ou 1 é realmente muito importante.pickle.HIGHEST_PROTOCOL
realmente faz?A vantagem
HIGHEST_PROTOCOL
é que os arquivos ficam menores. Isso faz com que a remoção de manchas às vezes seja muito mais rápida.Aviso importante : O tamanho máximo do arquivo de pickle é de cerca de 2 GB.
Caminho alternativo
Formatos alternativos
Para seu aplicativo, o seguinte pode ser importante:
Consulte também: Comparação de formatos de serialização de dados
Caso você esteja procurando uma maneira de criar arquivos de configuração, leia meu pequeno artigo Arquivos de configuração em Python
fonte
fonte
Em geral, a escolha de a
dict
falhará, a menos que você tenha apenas objetos simples, como seqüências de caracteres e números inteiros.Mesmo um simples realmente
dict
falha frequentemente. Depende apenas do conteúdo.No entanto, se você usar um serializador melhor como
dill
oucloudpickle
, a maioria dos dicionários poderá ser configurada:Ou se você quiser salvar o
dict
arquivo em um arquivo ...O último exemplo é idêntico a qualquer uma das outras boas respostas postadas aqui (que além de negligenciar a escolha do conteúdo
dict
são boas).fonte
normalmente é preferível usar a implementação cPickle
fonte
Se você quiser apenas armazenar o dict em um único arquivo, use
pickle
assimSe você deseja salvar e restaurar vários dicionários em vários arquivos para armazenar em cache e armazenar dados mais complexos, use anycache . Faz todas as outras coisas que você precisa
pickle
O Anycache armazena os diferentes
myfunc
resultados, dependendo dos argumentos para diferentes arquivos,cachedir
e os recarrega.Consulte a documentação para obter mais detalhes.
fonte
Maneira simples de despejar dados do Python (por exemplo, dicionário) em um arquivo pickle.
fonte
fonte
Eu achei a decapagem confusa (possivelmente porque sou grossa). Descobri que isso funciona, no entanto:
Que você pode gravar em um arquivo de texto. Desisti de tentar usar pickle, pois estava recebendo erros dizendo para escrever números inteiros em um arquivo .dat. Peço desculpas por não usar picles.
fonte
dict
a contenha mais profundidade de objetos (que pode ser impressa apenas por nome) e / ou objetos sem nenhuma ou uma representação de string completa.