Tallenna sanelu tiedostoon

Save Dict File



Sanakirja on erittäin kuuluisa kohde pythonissa. Ja se on kokoelma avaimia ja arvoja. Sanelun avaimen on oltava muuttumaton, ja se voi olla kokonaisluku, kelluva, merkkijono, mutta luettelo tai sanelu eivät voi olla avain. Joten joskus meidän on tallennettava dict -objektit tiedostoon. Joten aiomme nähdä erilaisia ​​tapoja tallentaa dict -objekti tiedostoon.

Voimme kirjoittaa sanakirjan tiedostoon Pythonissa eri tavoin, kuten:







  1. Pilkuilla erotettu arvotiedosto (.csv)
  2. Json -tiedosto (.json)
  3. Tekstitiedosto (.txt)
  4. Pickle -tiedosto (.pkl)

Selitämme kaikki edellä mainitut menetelmät.



Tapa 1: Tallenna sanakirja CSV -muodossa

Tallentaaksemme sanakirjan CSV -muotoon (pilkulla erotetut arvot) käytämme CSV -moduulia. Pilkuilla erotetut arvot python-sanelun tallentamiseksi on yleisin ja kuuluisin menetelmä. Useimmat ohjelmoijat käyttävät tätä menetelmää vain tallentaakseen sanoman tiedostoon. Sanakirjan tallentaminen tiedostoon CSV -muodossa on erittäin helppoa, koska meidän on siirrettävä tiedot merkkijonona.



Esimerkki_1: dict_to_csv.py





# dict_to_csv.py
tuonti csv

dict_sample= {'nimi':'LinuxHint', 'kaupunki':'ETTÄ', 'koulutus':'Tekniikka'}

kanssa avata('data.csv', 'sisään') kutenf:
vartennäppäintäsisäändict_sample.näppäimiä():
f.kirjoittaa(% s,% s n''%(näppäintä,dict_sample[näppäintä]))

Rivi 2 : Tuomme CSV -python -moduulin.

Rivi 4 : Loimme näytteen diktatiedoista. Yritämme tallentaa sen CSV -tiedostona.



Rivi 6: Käytämme tässä 'kanssa' -lauseketta CSV -tiedoston kirjoittamiseen. 'Kanssa' -lause käsittelee poikkeusten käsittelyn automaattisesti tiedoston lukemisen tai kirjoittamisen aikana. Avaamme tiedoston data.csv kirjoitustilassa ja määritämme objektin muuttujalle f.

Rivi 7 , Suoritamme for -silmukan, joka poimii avaimen, ja seuraavalla rivillä se kirjoittaa avaimen ja avaimen arvon CSV -tiedostoon. Tämä silmukka jatkuu, kunnes tietoja on.

Tulos: data.csv

nimi,LinuxVinkki
kaupunki,ETTÄ
koulutus,Tekniikka

Yllä oleva siis näyttää tulostiedoston data.csv -tiedostoon kirjoittamisen jälkeen.

Nyt ymmärrämme, miten sanelu tallennetaan CSV -muodossa olevaan tiedostoon. Kokeillaan toisella esimerkillä, jossa haluamme kirjoittaa luettelon dict -objekteista CSV -tiedostoon.

Esimerkki_2: dict_to_csv_2.py

# dict_to_csv_2.py

tuonti csv

csvSarakkeet= ['Kaupunki', 'Maa', 'Sijoitus']
dictDemo= [
{'Kaupunki':'New York', 'Maa':'KÄYTTÖ', 'Sijoitus':3},
{'Kaupunki':'Sydney', 'Maa':'Australia', 'Sijoitus':5},
{'Kaupunki':'Dubai', 'Maa':Arabiemiirikunnat, 'Sijoitus':10},
{'Kaupunki':'Mumbai', 'Maa':'Intia', 'Sijoitus':17},
{'Kaupunki':'Bejing', 'Maa':'Kiina', 'Sijoitus':7},
]
csvFileName= 'data.csv'
yrittää:
kanssa avata(csvFileName, 'sisään') kutenf:
kirjailija= csv.DictWriter(f,kenttien nimet=csvSarakkeet)
kirjailija.kirjoituspää()
vartentiedotsisäändictDemo:
kirjailija.kirjailija(tiedot)
paitsi IOError:
Tulosta('Virhe')

Rivi 3-12: Tuomme python CSV -moduulin ja luomme luettelon dict -objekteista. Loimme myös luettelon sarakkeiden nimistä.

Rivi 13: Määritimme CSV -tiedoston nimen muuttujalle.

Rivi 15: Käytämme 'kanssa' -lauseketta, ja lause on määrittänyt __enter__ -metodin palautusobjektin f -muuttujalle.

Rivi 16-19: Kun olemme määrittäneet palautusobjektin muuttujalle f, kutsuimme CSV -moduulin DictWriter -menetelmän ja välitimme kaksi parametria (tiedostonimi (f) ja sarakkeiden nimet). Sitten kutsumme toista menetelmää writeheader (), joka kirjoittaa CSV -tiedoston ensimmäisen rivin, joka on yleensä kenttien nimi. Sitten suoritamme for -silmukan dict -objektien luettelossa ja kirjoitamme yksi kerrallaan CSV -tiedostoon käyttämällä writeow () -menetelmää.

Tapa 2: Tallenna sanelu tekstitiedostoon JSON -muodossa (liitäntätila)

Voimme myös tallentaa dict -objektit JSON -muodossa tiedostoon. Alla oleva koodi selittää saman. Tämä koodi selittää myös, kuinka voimme lisätä uuden JSON: n olemassa olevaan JSON -luetteloon.

Esimerkki : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

tuontijson

dictDemo= [
{'Kaupunki':'New York', 'Maa':'KÄYTTÖ', 'Sijoitus':3},
{'Kaupunki':'Sydney', 'Maa':'Australia', 'Sijoitus':5},
{'Kaupunki':'Dubai', 'Maa':Arabiemiirikunnat, 'Sijoitus':10},
{'Kaupunki':'Mumbai', 'Maa':'Intia', 'Sijoitus':17},
{'Kaupunki':'Bejing', 'Maa':'Kiina', 'Sijoitus':7},
]

Tiedoston nimi= 'dict.json'

# Dict -objektiluettelon kirjoittaminen tiedostoon
kanssa avata(Tiedoston nimi,-tilaan='sisään') kutenf:
json.kaatopaikka(dictDemo,f)

# Uuden saneluobjektin kirjoittaminen tiedostoon liitettäväksi ja korvaa koko tiedosto
kanssa avata(Tiedoston nimi,-tilaan='sisään') kutenf:
dictDemo.liittää({'Kaupunki':'Bejing', 'Maa':'Kiina'})
json.kaatopaikka(dictDemo,f)

Lähtö : dict.json

[{'Kaupunki':'New York', 'Maa':'KÄYTTÖ', 'Sijoitus':3},
{'Kaupunki':'Sydney', 'Maa':'Australia', 'Sijoitus':5},
{'Kaupunki':'Dubai', 'Maa':Arabiemiirikunnat, 'Sijoitus':10},
{'Kaupunki':'Mumbai', 'Maa':'Intia', 'Sijoitus':17},
{'Kaupunki':'Bejing', 'Maa':'Kiina', 'Sijoitus':7},
{'Kaupunki':'Bejing', 'Maa':'Kiina'}
]

Rivi 1-13 : Tuomme JSON -moduulin. Sitten luomme luettelon dikto -objekteista esittelyä varten. Sitten annoimme JSON -tiedoston nimen muuttujalle.

Linja 15-17 : Käytämme “kanssa” -lausetta avataksesi JSON -tiedoston kirjoittamista varten, ja käytämme sitten json.dump -menetelmää muuntamaan dict -objektit JSON -muotoon ja kirjoittamaan sitten tiedostoon.

Rivit 20-22: Nämä rivit ovat erittäin tärkeitä, koska mitä tapahtuu? Jos yritämme lisätä uusia JSON -objekteja jo kirjoitettuihin tiedostoihin. Aiemmat tiedot menetetään päällekirjoituksen vuoksi. Sitten voimme käyttää edellistä sanelistan nimeä kuten käytimme (dictDemo), ja sitten liitämme uuden objektin siihen. Ja lopuksi muunnamme koko tiedoston JSONiksi ja korvaamme koko tiedoston.

Tuloksessa voimme nähdä, että uusi JSON -objekti lisätään olemassa olevaan JSON -luetteloon.

Tapa 3: Tallenna sanakirjaobjektit tiedostoon txt -muodossa

Voimme myös tallentaa sanakirjan normaaliin merkkijonomuotoon tiedostoon. Joten alla oleva menetelmä on erittäin yksinkertainen tapa tallentaa sanakirjaobjektit tiedostoon tekstimuodossa. Mutta tämä koodi ei toimi, jos haluamme liittää tiedostoon uuden sanakirjaobjektin, koska se korvaa aiemmin kirjoitetut tiedot. Joten sitä varten näemme sen seuraavassa koodissa.

Esimerkki: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'Kaupunki':'New York', 'Maa':'KÄYTTÖ', 'Sijoitus':3},
{'Kaupunki':'Sydney', 'Maa':'Australia', 'Sijoitus':5},
{'Kaupunki':'Dubai', 'Maa':Arabiemiirikunnat, 'Sijoitus':10},
{'Kaupunki':'Mumbai', 'Maa':'Intia', 'Sijoitus':17},
{'Kaupunki':'Bejing', 'Maa':'Kiina', 'Sijoitus':7},
]

Tiedoston nimi= 'dict.txt'

# Dict -objektiluettelon kirjoittaminen tiedostoon
kanssa avata(Tiedoston nimi,-tilaan='sisään') kutenf:
f.kirjoittaa(s(dictDemo))

Lähtö: dict.txt

[{'Kaupunki':'New York', 'Maa':'KÄYTTÖ', 'Sijoitus':3},
{'Kaupunki':'Sydney', 'Maa':'Australia', 'Sijoitus':5},
{'Kaupunki':'Dubai', 'Maa':Arabiemiirikunnat, 'Sijoitus':10},
{'Kaupunki':'Mumbai', 'Maa':'Intia', 'Sijoitus':17},
{'Kaupunki':'Bejing', 'Maa':'Kiina', 'Sijoitus':7}]

Rivi 1-11 : Luo luettelo sanakirjaobjekteista ja määritti tiedoston dict.txt nimen muuttuvalle tiedostonimelle.

Rivi 14-15 : Käytämme tässä 'kanssa' -lauseketta, joka käsittelee automaattisesti poikkeuksen. Ja kirjoitamme dict -objektiluettelon merkkijonona tiedostoon.

Esimerkki: dict_to_txt_2.py

Olemme nähneet, miten dict -objektit tallennetaan tiedostoon .txt -muodossa. Mutta yllä olevassa koodissa on yksi ongelma uuden objektin liittämisessä. Joten muutamme liitemenetelmän w: stä a: ksi, mikä voi ratkaista ongelmamme alla olevan koodin mukaisesti.

#dict_to_txt_2.py

'' ': cvar
Tämä koodi tallentaa dict -objektit tiedostoon, jossa on
liitäntätila.
'' ''

dictDemo= [
{'Kaupunki':'New York', 'Maa':'KÄYTTÖ', 'Sijoitus':3},
{'Kaupunki':'Sydney', 'Maa':'Australia', 'Sijoitus':5},
{'Kaupunki':'Dubai', 'Maa':Arabiemiirikunnat, 'Sijoitus':10},
{'Kaupunki':'Mumbai', 'Maa':'Intia', 'Sijoitus':17},
{'Kaupunki':'Bejing', 'Maa':'Kiina', 'Sijoitus':7},
]

Tiedoston nimi= 'dict_to_file_appendMode.txt'

# Dict -objektiluettelon kirjoittaminen tiedostoon
kanssa avata(Tiedoston nimi,-tilaan='') kutenf:
f.kirjoittaa(s(dictDemo))

Rivi 7-15 : Olemme luoneet luettelon sanakirjaobjekteista ja määrittäneet tiedoston dict_to_file_appendMode.txt nimen muuttuvalle tiedostonimelle.

Linja 18-19 : Vaihdamme tilaa = ’a’, ja tämä ratkaisee ongelmamme. Alla oleva tulos osoittaa, että olemme lisänneet kaksi saneluobjektia samaan tiedostoon korvaamatta aiempia tietoja.

Tulos: dict_to_file_appendMode.txt

[{'Kaupunki':'New York', 'Maa':'KÄYTTÖ', 'Sijoitus':3},
{'Kaupunki':'Sydney', 'Maa':'Australia', 'Sijoitus':5},
{'Kaupunki':'Dubai', 'Maa':Arabiemiirikunnat, 'Sijoitus':10},
{'Kaupunki':'Mumbai', 'Maa':'Intia', 'Sijoitus':17},
{'Kaupunki':'Bejing', 'Maa':'Kiina', 'Sijoitus':7}]

[{'Kaupunki':'New York', 'Maa':'KÄYTTÖ', 'Sijoitus':3},
{'Kaupunki':'Sydney', 'Maa':'Australia', 'Sijoitus':5},
{'Kaupunki':'Dubai', 'Maa':Arabiemiirikunnat, 'Sijoitus':10},
{'Kaupunki':'Mumbai', 'Maa':'Intia', 'Sijoitus':17},
{'Kaupunki':'Bejing', 'Maa':'Kiina', 'Sijoitus':7}]

Tapa 4: Tallenna dict -objekti tiedostoon suolakurkumenetelmällä.

Voimme myös tallentaa dict -objektin tiedostoon käyttämällä python -suolakurkumoduulia. Suolakurkumoduuli tukee monia kohteita sarjoitettaviksi pythonissa ja tukee myös dict -objekteja.

# dict_to_file_use_pickle.py

tuonti suolakurkku

dictDemo= [
{'Kaupunki':'New York', 'Maa':'KÄYTTÖ', 'Sijoitus':3},
{'Kaupunki':'Sydney', 'Maa':'Australia', 'Sijoitus':5},
{'Kaupunki':'Dubai', 'Maa':Arabiemiirikunnat, 'Sijoitus':10},
{'Kaupunki':'Mumbai', 'Maa':'Intia', 'Sijoitus':17},
{'Kaupunki':'Bejing', 'Maa':'Kiina', 'Sijoitus':7},
]

Tiedoston nimi= 'picklefile.pkl'

kanssa avata(Tiedoston nimi, 'pois') kutenf:
suolakurkku.kaatopaikka(dictDemo,f)

Rivi 3-13 : Tuomme moduulin suolakurkkua ja luomme luettelon dict -objekteista. Luomme myös tiedostonimen, johon tallennamme dict -objektimme.

Linja 15-16 : Käytämme tässä 'kanssa' -lauseketta ja avaamme tiedoston liitetiedostolla ja binäärimuodossa. Sitten upotamme dict -objektit tiedostoon.

Johtopäätös

Olemme siis nähneet erilaisia ​​tapoja tallentaa sanakirjaobjekti tiedostoon. Käyttäjästä riippuu, miten hän haluaa tallentaa objektin tiedostoon. Yleisimmät menetelmät dict -objektin tallentamiseksi tiedostoon ovat JSON ja CSV. JSON- ja CSV -tiedostomuodot ovat ohjelmoinnin kannalta erittäin kuuluisia tai helppokäyttöisiä pythonissa. Olemme myös nähneet liitetiedoston tiedostojen tallentamiseen.

Tämän artikkelin koodi voidaan ladata tästä linkistä:

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