A szótárat a Python fájlba különféle módon írhatjuk, például:
- Vesszővel elválasztott értékfájl (.csv)
- Json fájl (.json)
- Szöveges fájl (.txt)
- Pácolt fájl (.pkl)
Az összes fenti módszert elmagyarázzuk.
Módszer: A szótár mentése CSV formátumban
A szótár CSV -be (vesszővel elválasztott értékek) való mentéséhez a CSV modult használjuk. A vesszővel elválasztott értékek a python-dikt mentéséhez a leggyakoribb és leghíresebb módszer. A legtöbb programozó csak ezt a módszert használja a diktátum fájlba mentéséhez. A szótár CSV -fájlba mentése nagyon egyszerű, mivel az adatokat karakterláncként kell átvinni.
Példa_1: dict_to_csv.py
# dict_to_csv.py
import csv
dict_sample= {'név':'LinuxHint', 'város':'HOGY', 'oktatás':'Mérnöki'}
val vel nyisd ki('data.csv', 'ban ben') mintf:
számárakulcsban bendict_sample.kulcsok():
f.ír('% s,% s n'%(kulcs,dict_sample[kulcs]))
2. sor : Importáljuk a CSV python modult.
4. sor : Létrehoztunk egy diktációs mintát. Megpróbáljuk menteni CSV -fájl formájában.
6. sor: Itt a „with” utasítással írjuk a CSV -fájlt. A „with” utasítás automatikusan kezeli a kivételkezelést egy fájl olvasása vagy írása során. Írásmódban megnyitjuk a data.csv fájlt, és hozzárendeljük az objektumot az f változóhoz.
7. sor , A for ciklust futtatjuk, amely kibontja a kulcsot, és a következő sorban a kulcsot és a kulcsértéket írja egy CSV -fájlba. Tehát ez a ciklus addig fog futni, amíg nincs adat.
Kimenet: data.csv
név,LinuxTippváros,HOGY
oktatás,Mérnöki
Tehát a fentiek a data.csv fájlra írást követően a kimeneti fájlt mutatják.
Most megértjük, hogyan menthetjük el a diktátumot CSV formátumú fájlba. Próbálkozzunk egy másik példával, ahol a dict objektumok listáját szeretnénk beírni a CSV fájlba.
Példa_2: dict_to_csv_2.py
# dict_to_csv_2.pyimport csv
csvOszlopok= ['Város', 'Ország', 'Rang']
dictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]
csvFileName= 'data.csv'
próbáld ki:
val vel nyisd ki(csvFileName, 'ban ben') mintf:
író= csv.DictWriter(f,mezőnevek=csvOszlopok)
író.írófej()
számáraadatban bendictDemo:
író.író(adat)
kivéve IOError:
nyomtatás('Hiba történt')
3-12. Sor: Importáljuk a python CSV modult, és létrehozunk egy listát a dict objektumokról. Létrehoztunk egy oszlopnevek listáját is.
13. sor: A CSV -fájlnevet egy változóhoz rendeltük.
15. sor: A „with” utasítást használjuk, és az utasítás a __enter__ metódus return objektumot rendelte az f változóhoz.
16-19 sor: Miután a visszatérési objektumot hozzárendeltük az f változóhoz, meghívtuk a CSV modul DictWriter metódusát, és két paramétert adtunk meg (fájlnév (f) és oszlopnevek). Ezután hívunk egy másik metódust írófejnek (), amely a CSV -fájl első sorát írja, ami általában a mezők neve. Ezután futtatunk egy for ciklust a dict objektumok listáján, és egyenként írunk a CSV fájlba a writeow () metódussal.
Módszer: Mentse el a diktátumot egy szöveges fájlba JSON formátumban (hozzáfűzési mód)
A dict objektumokat JSON formájában is menthetjük fájlba. Az alábbi kód megmagyarázza ugyanezt. Ez a kód azt is elmagyarázza, hogyan adhatunk hozzá új JSON -t a JSON meglévő listájához.
Példa : dict_to_file_asJSON.py
#dict_to_file_asJSON.pyimportjson
dictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]
fájl név= 'dict.json'
# A dict objektumok listájának írása egy fájlba
val vel nyisd ki(fájl név,mód='ban ben') mintf:
json.lerak(dictDemo,f)
# Új diktációs objektum írása egy fájlhoz csatolásként és felülírva az egész fájlt
val vel nyisd ki(fájl név,mód='ban ben') mintf:
dictDemo.mellékel({'Város':'Bejing', 'Ország':'Kína'})
json.lerak(dictDemo,f)
Kimenet : dict.json
[{'Város':'New York', 'Ország':'USES', 'Rang':3},{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
{'Város':'Bejing', 'Ország':'Kína'}
]
1-13. Sor : Importáljuk a JSON modult. Ezután létrehozunk egy listát a diktációs objektumokról a bemutatóhoz. Ezután hozzárendeltük a JSON fájl nevét egy változó fájlnévhez.
15-17 sor : A „with” utasítással megnyitjuk a JSON fájlt íráshoz, majd a json.dump metódussal konvertáljuk a dict objektumokat JSON -ba, majd írunk a fájlba.
20-22 sor: Ezek a sorok nagyon fontosak, mert mi fog történni? Ha új JSON objektumokat próbálunk hozzáadni a már megírt fájlokhoz. A korábbi adatok elvesznek a felülírás miatt. Ekkor használhatjuk a korábbi diktálási lista nevét, ahogy tettük (dictDemo), majd hozzáfűzzük az új objektumot. És végül az egész fájlt JSON -ba konvertáljuk, és felülírjuk az egész fájlt.
A kimeneten láthatjuk, hogy egy új JSON objektum hozzáadódik a meglévő JSON listához.
3. módszer: Mentse el a szótárobjektumokat fájlba txt formában
A szótárt normál karakterlánc -formátumba is menthetjük a fájlba. Tehát az alábbi módszer egy nagyon egyszerű módja annak, hogy a szótárobjektumokat szöveges formában mentse a fájlba. De ez a kód nem fog működni, ha új szótárobjektumot szeretnénk hozzáfűzni a fájlhoz, mert felülírja a korábban írt adatokat. Tehát ehhez a következő kódban fogjuk látni.
Példa: dict_to_txt.py
#dict_to_txt.pydictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]
fájl név= 'dict.txt'
# A dict objektumok listájának írása egy fájlba
val vel nyisd ki(fájl név,mód='ban ben') mintf:
f.ír(o(dictDemo))
Kimenet: dict.txt
[{'Város':'New York', 'Ország':'USES', 'Rang':3},{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7}]
1-11 sor : Létrehoztunk egy szótár objektumok listáját, és a dict.txt fájl nevét hozzárendeltük egy változó fájlnévhez.
14-15 sor : Itt a „with” utasítást használjuk, amely automatikusan kezeli a kivételt. És a dict objektumok listáját karakterláncként írjuk egy fájlba.
Példa: dict_to_txt_2.py
Láttuk, hogyan lehet a dict objektumokat egy .txt formátumú fájlba menteni. De a fenti kódban egy probléma van egy új objektum hozzáfűzésével. Tehát megváltoztatjuk a hozzáfűzési módszert „w” -ről „a” -ra, ami megoldhatja a problémánkat, ahogy az alább látható a kódban.
#dict_to_txt_2.py'' ': cvar
Ez a kód menti a dict objektumokat a fájlba a
hozzáfűzési mód.
'' ''
dictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]
fájl név= 'dict_to_file_appendMode.txt'
# A dict objektumok listájának írása egy fájlba
val vel nyisd ki(fájl név,mód='nak nek') mintf:
f.ír(o(dictDemo))
7-15 sor : Létrehoztunk egy szótár objektumok listáját, és a dict_to_file_appendMode.txt fájl nevét hozzárendeltük egy változó fájlnévhez.
18-19 sor : Megváltoztatjuk a módot = ‘a’, és ez megoldja a problémánkat. Az alábbi kimenet azt mutatja, hogy két dict objektumot adtunk ugyanabba a fájlba anélkül, hogy felülírtuk volna az előző adatokat.
Kimenet: dict_to_file_appendMode.txt
[{'Város':'New York', 'Ország':'USES', 'Rang':3},{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7}]
[{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7}]
4. módszer: Mentse el a dict objektumot fájlba a pácolás módszerével.
A dict objektumot fájlba is menthetjük a python savanyító modul segítségével. A pácoló modul számos objektumot támogat a sorba rendezéshez a pythonban, és támogatja a diktált objektumokat is.
# dict_to_file_use_pickle.pyimport savanyú uborka
dictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]
fájl név= 'picklefile.pkl'
val vel nyisd ki(fájl név, 'el') mintf:
savanyú uborka.lerak(dictDemo,f)
3-13. Sor : Importáljuk a modul pácot, és létrehozunk egy listát a dict objektumokról. Létrehozunk egy fájlnevet is, ahová mentjük a dict objektumainkat.
15-16 sor : Itt a „with” utasítást használjuk, és megnyitjuk a fájlt hozzáfűzési módban és bináris formátumban. Ezután a dict objektumokat a fájlba dobjuk.
Következtetés
Tehát láthattunk különböző módszereket egy szótárobjektum fájlba mentésére. A felhasználótól függ, hogy hogyan szeretné menteni az objektumot a fájlba. A dict objektum fájlba mentésének leggyakoribb módszerei a JSON és a CSV. A JSON és CSV formátumok nagyon híresek a programozás szempontjából, vagy könnyen kezelhetők pythonban. Láttuk a fájlok mentésének hozzáfűzési módját is.
A cikk kódja letölthető erről a linkről:
https://github.com/shekharpandey89/save-dict-object-to-a-file