Salve um ditado em um arquivo

Salve um ditado em um arquivo
Dicionário é um objeto muito famoso em Python. E é uma coleção de chaves e valores. A chave do dicto deve ser imutável e pode ser inteira, flutuar, corda, mas nem uma lista nem um dicto podem ser uma chave. Então, às vezes precisamos salvar os objetos do dicto em um arquivo. Então, vamos ver métodos diferentes para salvar um objeto de ditado em um arquivo.

Podemos escrever o dicionário para um arquivo em Python de diferentes maneiras como:

  1. Arquivo de valor separado por vírgula (.CSV)
  2. Arquivo json (.json)
  3. Arquivo de texto (.TXT)
  4. Arquivo de picles (.pkl)

Vamos explicar todos os métodos acima.

Método 1: Salvar dicionário no formato CSV

Para salvar o dicionário no CSV (valores separados por vírgula), usamos o módulo CSV. Os valores separados por vírgula para salvar o ditado de Python é o método mais comum e famoso. A maioria dos programadores usa esse método apenas para salvar o ditado em um arquivo. Para salvar o dicionário em um arquivo, pois o CSV é muito fácil, pois temos que transferir os dados como uma string.

Exemplo_1: dict_to_csv.py

# dict_to_csv.py
importar CSV
dict_sample = 'name': 'linuxhint', 'cidade': 'ca', 'educação': 'engenharia'
com open ('dados.CSV ',' W ') como f:
Para chave em dict_sample.chaves():
f.Write (" %s, %s \ n" %(chave, dict_sample [key])))

Linha 2: Nós importamos o módulo Python CSV.

Linha 4: Criamos um amostra de dados de dicados. Vamos tentar salvá -lo na forma de um arquivo CSV.

Linha 6: Estamos usando aqui 'com' declaração para escrever o arquivo CSV. A declaração 'com' lida com o manuseio de exceção automaticamente durante a leitura ou gravação de um arquivo. Abrimos os dados do arquivo.CSV no modo de gravação e atribui esse objeto à variável f.

Linha 7, Estamos executando um loop para extrair a chave e, na próxima linha, ela escreve a chave e o key_value para um arquivo CSV. Portanto, este loop será executado até que haja dados.

Dados de saída.CSV

Nome, Linuxhint
City, CA
Educação, Engenharia

Portanto, o acima mostra o arquivo de saída após escrever nos dados.CSV.

Agora, entendemos como salvar o ditado em um arquivo na forma de CSV. Vamos tentar com outro exemplo em que queremos escrever uma lista de objetos de dicto no arquivo CSV.

Exemplo_2: dict_to_csv_2.py

# dict_to_csv_2.py
importar CSV
csvcolumns = ['cidade', 'país', 'rank']
dictdemo = [
'City': 'New York', 'Country': 'USA', 'Rank': 3,
'City': 'Sydney', 'Country': 'Australia', 'Rank': 5,
'City': 'Dubai', 'país': 'Emirados Árabes Unidos', 'Rank': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]
csvfilename = "Dados.CSV "
tentar:
com open (csvfileName, 'w') como f:
Writer = CSV.DictWriter (F, FieldNames = CSVColumns)
escritor.writeHeader ()
Para dados no dictdemo:
escritor.Writerow (dados)
Exceto ioerror:
Imprimir ("Erro Got")

Linha 3 a 12: Importamos o módulo Python CSV e criamos uma lista de objetos de dicto. Também criamos uma lista de nomes de colunas.

Linha 13: Atribuímos o nome do arquivo CSV a uma variável.

Linha 15: Usamos a declaração 'com', e a declaração atribuída o método __enter__ retorna objeto para a variável f.

Linha 16 a 19: Depois de atribuir o objeto de retorno à variável F, chamamos de método Dictwriter do módulo CSV e passamos dois parâmetros (nome do arquivo (f) e nomes de colunas). Em seguida, chamamos outro método writeHeader () que escreverá a primeira linha do arquivo CSV, que geralmente é o nome dos campos. Em seguida, executamos um loop for na lista dos objetos do dicto e escrevemos um por um no arquivo CSV usando o método writerw ().

Método 2: Salve o ditado em um arquivo de texto no formato JSON (Modo Anexo)

Também podemos salvar os objetos dicados na forma do JSON em um arquivo. O código abaixo explicará o mesmo. Este código também explica como podemos adicionar um novo JSON a uma lista existente de JSON.

Exemplo: dict_to_file_asjson.py

#dict_to_file_asjson.py
importar json
dictdemo = [
'City': 'New York', 'Country': 'USA', 'Rank': 3,
'City': 'Sydney', 'Country': 'Australia', 'Rank': 5,
'City': 'Dubai', 'país': 'Emirados Árabes Unidos', 'Rank': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]
FileName = "Dict.json "
# Escrever a lista de objetos de dicto para um arquivo
com open (nome do arquivo, modo = 'w') como f:
JSON.despejo (dictdemo, f)
# Escrever um novo objeto de ditado em um arquivo como anexar e substituir todo o arquivo
com open (nome do arquivo, modo = 'w') como f:
DictDemo.Anexar ('City': 'Bejing', 'Country': 'China')
JSON.despejo (dictdemo, f)

Saída: dict.JSON

["City": "New York", "Country": "USA", "Rank": 3,
"City": "Sydney", "Country": "Australia", "Rank": 5,
"City": "Dubai", "Country": "Emirados Árabes Unidos", "Rank": 10,
"City": "Mumbai", "Country": "India", "Rank": 17,
"City": "Bejing", "Country": "China", "Rank": 7,
"City": "Bejing", "Country": "China"
]

Linha 1 a 13: Nós importamos o módulo JSON. Em seguida, criamos uma lista de objetos dicados para a demonstração. Em seguida, atribuímos o nome do arquivo json a um nome de arquivo variável.

Linha 15 a 17: Estamos usando a declaração 'com' para abrir o arquivo json para escrever e depois usamos o JSON.Método de despejo para converter os objetos de dicto em JSON e depois escrever no arquivo.

Linha 20 a 22: Essas linhas são muito importantes porque o que vai acontecer? Se tentarmos adicionar novos objetos JSON aos arquivos já escritos. Os dados anteriores serão perdidos por causa da substituição. Então podemos usar o nome da lista de ditos anteriores como fizemos (dictDemo) e depois anexamos o novo objeto a isso. E finalmente, convertemos o arquivo inteiro em JSON e substituímos todo o arquivo.

Na saída, podemos ver que um novo objeto JSON é adicionado a uma lista JSON existente.

Método 3: Salve os objetos do dicionário em um arquivo em forma de txt

Também podemos salvar o dicionário em um formato de string normal no arquivo. Portanto, o método abaixo é uma maneira muito simples de salvar os objetos do dicionário no arquivo no formulário de texto. Mas esse código não funcionará se quisermos anexar um novo objeto de dicionário ao arquivo, porque ele substituirá os dados escritos anteriormente escritos. Então, para isso, veremos no próximo código.

Exemplo: dict_to_txt.py

#dict_to_txt.py
dictdemo = [
'City': 'New York', 'Country': 'USA', 'Rank': 3,
'City': 'Sydney', 'Country': 'Australia', 'Rank': 5,
'City': 'Dubai', 'país': 'Emirados Árabes Unidos', 'Rank': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]
FileName = "Dict.TXT"
# Escrever a lista de objetos de dicto para um arquivo
com open (nome do arquivo, modo = 'w') como f:
f.Write (str (dictDemo))

Saída: dito.TXT

['City': 'New York', 'Country': 'USA', 'Rank': 3,
'City': 'Sydney', 'Country': 'Australia', 'Rank': 5,
'City': 'Dubai', 'país': 'Emirados Árabes Unidos', 'Rank': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'bejing', 'país': 'China', 'Rank': 7]

Linha 1 a 11: Criamos uma lista de objetos de dicionário e atribuímos o nome do arquivo “Dict.txt ”para um nome de arquivo variável.

Linha 14 a 15: Estamos usando aqui 'com' declaração, que lida automaticamente na exceção. E estamos escrevendo a lista de objetos de dicta como uma string para um arquivo.

Exemplo: dict_to_txt_2.py

Vimos como salvar os objetos do dicto em um arquivo no .formulário txt. Mas no código acima, há um problema em anexar um novo objeto. Então, alteramos o método de apen de 'W' para 'A', que pode resolver nosso problema, como mostrado abaixo no código.

#dict_to_txt_2.py
"" ": cvar
Este código salvará os objetos do ditado no arquivo com o
Modo de anexo.
"" "
dictdemo = [
'City': 'New York', 'Country': 'USA', 'Rank': 3,
'City': 'Sydney', 'Country': 'Australia', 'Rank': 5,
'City': 'Dubai', 'país': 'Emirados Árabes Unidos', 'Rank': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]
filename = "dict_to_file_appendMode.TXT"
# Escrever a lista de objetos de dicto para um arquivo
com open (nome do arquivo, mode = 'a') como f:
f.Write (str (dictDemo))

Linha 7 a 15: Criamos uma lista de objetos de dicionário e atribuímos o nome do arquivo “dict_to_file_appendMode.txt ”para um nome de arquivo variável.

Linha 18 a 19: Mudamos o modo = 'a', e isso resolverá nosso problema. A saída abaixo mostra que adicionamos dois objetos dicados no mesmo arquivo sem substituir os dados anteriores.

Saída: dict_to_file_appendMode.TXT

['City': 'New York', 'Country': 'USA', 'Rank': 3,
'City': 'Sydney', 'Country': 'Australia', 'Rank': 5,
'City': 'Dubai', 'país': 'Emirados Árabes Unidos', 'Rank': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'bejing', 'país': 'China', 'Rank': 7]
['City': 'New York', 'Country': 'USA', 'Rank': 3,
'City': 'Sydney', 'Country': 'Australia', 'Rank': 5,
'City': 'Dubai', 'país': 'Emirados Árabes Unidos', 'Rank': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'bejing', 'país': 'China', 'Rank': 7]

Método 4: Salve o objeto DIT em um arquivo usando o método de picles.

Também podemos salvar o objeto Dict em um arquivo usando o módulo Python Pickle. O módulo de picles suporta muitos objetos para serialização em Python e também suporta objetos de dicto.

# dict_to_file_use_pickle.py
importar picles
dictdemo = [
'City': 'New York', 'Country': 'USA', 'Rank': 3,
'City': 'Sydney', 'Country': 'Australia', 'Rank': 5,
'City': 'Dubai', 'país': 'Emirados Árabes Unidos', 'Rank': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]
filename = "picklefile.pkl "
com open (nome do arquivo, 'ab') como f:
salmoura.despejo (dictdemo, f)

Linha 3 a 13: Importamos o módulo Pickle e criamos uma lista de objetos de dicto. Também criamos um nome de arquivo onde salvaremos nossos objetos de ditado.

Linha 15 a 16: Estamos usando aqui 'com' declaração e abrindo o arquivo com modo de anexo e formato binário. Então despejamos os objetos do dicto no arquivo.

Conclusão

Então, vimos métodos diferentes para salvar um objeto de dicionário em um arquivo. Depende do usuário de que eles desejam salvar o objeto no arquivo. Os métodos mais comuns para salvar o objeto Dict no arquivo são JSON e CSV. Os formatos JSON e CSV são muito famosos do ponto de vista de programação ou de fácil manuseio no Python. Também vimos o modo Apênder de salvar arquivos.

O código deste artigo pode ser baixado neste link:

https: // github.com/shekharpandey89/save-dict-object-to-a-file