Zapisz dyktowanie do pliku

Save Dict File



Słownik jest bardzo znanym obiektem w Pythonie. Jest to zbiór kluczy i wartości. Klucz dyktat musi być niezmienny i może być liczbą całkowitą, zmiennoprzecinkową, łańcuchową, ale ani lista, ani sam dyktat nie może być kluczem. Tak więc czasami musimy zapisać obiekty dict do pliku. Zobaczymy więc różne metody zapisywania obiektu dict w pliku.

Słownik możemy zapisać do pliku w Pythonie na różne sposoby, takie jak:







  1. Plik wartości rozdzielanych przecinkami (.csv)
  2. Plik JSON (.json)
  3. Plik tekstowy (.txt)
  4. Plik marynowania (.pkl)

Wyjaśnimy wszystkie powyższe metody.



Metoda 1: Zapisz słownik w formacie CSV

Aby zapisać słownik w formacie CSV (wartości oddzielone przecinkami), używamy modułu CSV. Najpopularniejszą i najbardziej znaną metodą są wartości oddzielone przecinkami, aby zapisać dyktat Pythona. Większość programistów używa tej metody tylko do zapisania dyktatu do pliku. Zapisanie słownika w pliku jako CSV jest bardzo łatwe, ponieważ dane musimy przesłać w postaci ciągu.



Przykład_1: dict_to_csv.py





# dict_to_csv.py
import csv

dykt_przykład= {'Nazwa':„Podpowiedź do Linuksa”, 'Miasto':'ŻE', 'Edukacja':'Inżynieria'}

z otwarty(„dane.csv”, 'w') jakF:
dlakluczwdict_sample.Klucze():
F.pisać('% SS '%(klucz,dykt_przykład[klucz]))

Linia 2 : Importujemy moduł Pythona CSV.

Linia 4 : Stworzyliśmy przykładowe dane dict. Postaramy się zapisać go w postaci pliku CSV.



Linia 6: Używamy tutaj wyrażenia „with” do zapisania pliku CSV. Instrukcja „with” automatycznie obsługuje obsługę wyjątków podczas odczytu lub zapisu pliku. Otwieramy plik data.csv w trybie zapisu i przypisujemy ten obiekt do zmiennej f.

Linia 7 , Uruchamiamy pętlę for, która wyodrębnia klucz, aw następnym wierszu zapisuje klucz i wartość_klucza do pliku CSV. Więc ta pętla będzie działać, dopóki nie będą dane.

Wyjście: data.csv

Nazwa,LinuxWskazówka
Miasto,ŻE
Edukacja,Inżynieria

Tak więc powyższe pokazuje plik wyjściowy po zapisaniu na data.csv.

Teraz rozumiemy, jak zapisać dyktowanie do pliku w postaci CSV. Spróbujmy z innym przykładem, w którym chcemy zapisać listę obiektów dict do pliku CSV.

Przykład_2: dict_to_csv_2.py

# dict_to_csv_2.py

import csv

csvColums= ['Miasto', 'Kraj', 'Ranga']
dictDemo= [
{'Miasto':'Nowy Jork', 'Kraj':„ZASTOSOWANIA”, 'Ranga':3},
{'Miasto':'Sydnej', 'Kraj':'Australia', 'Ranga':5},
{'Miasto':'Dubai', 'Kraj':„ZEA”, 'Ranga':10},
{'Miasto':„Bombaj”, 'Kraj':'Indie', 'Ranga':17},
{'Miasto':„Pekin”, 'Kraj':'Chiny', 'Ranga':7},
]
NazwaPliku csv= „dane.csv”
próbować:
z otwarty(NazwaPliku csv, 'w') jakF:
pisarz= csv.DictWriter(F,nazwy pól=csvColums)
pisarz.nagłówek zapisu()
dladanewdictDemo:
pisarz.pisać(dane)
z wyjątkiem IOError:
wydrukować(„Wystąpił błąd”)

Linia 3 do 12: Importujemy moduł python CSV i tworzymy listę obiektów dict. Stworzyliśmy również listę nazw kolumn.

Linia 13: Do zmiennej przypisaliśmy nazwę pliku CSV.

Linia 15: Używamy instrukcji „with”, a instrukcja przypisuje obiekt return metody __enter__ do zmiennej f.

Linia 16 do 19: Po przypisaniu zwracanego obiektu do zmiennej f, wywołaliśmy metodę DictWriter modułu CSV i przekazaliśmy dwa parametry (nazwę pliku (f) i nazwy kolumn). Następnie wywołujemy inną metodę writeheader(), która zapisze pierwszy wiersz pliku CSV, który zazwyczaj jest nazwą pól. Następnie uruchamiamy pętlę for na liście obiektów dict i zapisujemy jeden po drugim do pliku CSV metodą writerow().

Metoda 2: Zapisz dict do pliku tekstowego w formacie JSON (tryb dołączania)

Możemy również zapisać obiekty dict w postaci JSON do pliku. Poniższy kod wyjaśni to samo. Ten kod wyjaśnia również, jak możemy dodać nowy JSON do istniejącej listy JSON.

Przykład : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

importjson

dictDemo= [
{'Miasto':'Nowy Jork', 'Kraj':„ZASTOSOWANIA”, 'Ranga':3},
{'Miasto':'Sydnej', 'Kraj':'Australia', 'Ranga':5},
{'Miasto':'Dubai', 'Kraj':„ZEA”, 'Ranga':10},
{'Miasto':„Bombaj”, 'Kraj':'Indie', 'Ranga':17},
{'Miasto':„Pekin”, 'Kraj':'Chiny', 'Ranga':7},
]

Nazwa pliku= 'dykt.json'

# Zapisywanie listy obiektów dict do pliku
z otwarty(Nazwa pliku,tryb='w') jakF:
json.wysypisko(dictDemo,F)

# Zapisanie nowego obiektu dict do pliku jako dołączenie i nadpisanie całego pliku
z otwarty(Nazwa pliku,tryb='w') jakF:
dictDemo.dodać({'Miasto':„Pekin”, 'Kraj':'Chiny'})
json.wysypisko(dictDemo,F)

Wyjście : dykt.json

[{'Miasto':'Nowy Jork', 'Kraj':„ZASTOSOWANIA”, 'Ranga':3},
{'Miasto':'Sydnej', 'Kraj':'Australia', 'Ranga':5},
{'Miasto':'Dubai', 'Kraj':„ZEA”, 'Ranga':10},
{'Miasto':„Bombaj”, 'Kraj':'Indie', 'Ranga':17},
{'Miasto':„Pekin”, 'Kraj':'Chiny', 'Ranga':7},
{'Miasto':„Pekin”, 'Kraj':'Chiny'}
]

Linia 1 do 13 : Importujemy moduł JSON. Następnie tworzymy listę obiektów dict do demonstracji. Następnie przypisaliśmy nazwę pliku JSON do zmiennej nazwa pliku.

Linia 15 do 17 : Używamy instrukcji „with”, aby otworzyć plik JSON do zapisu, a następnie używamy metody json.dump, aby przekonwertować obiekty dict na JSON, a następnie zapisać do pliku.

Linia 20 do 22: Te linie są bardzo ważne, bo co się stanie? Jeśli spróbujemy dodać nowe obiekty JSON do już napisanych plików. Poprzednie dane zostaną utracone z powodu nadpisania. Następnie możemy użyć poprzedniej nazwy listy dict, tak jak to zrobiliśmy (dictDemo), a następnie dołączyć do niej nowy obiekt. I na koniec konwertujemy cały plik do JSON i nadpisujemy cały plik.

W danych wyjściowych widzimy, że nowy obiekt JSON został dodany do istniejącej listy JSON.

Metoda 3: Zapisz obiekty słownika do pliku w formacie txt

Możemy również zapisać słownik w normalnym formacie ciągu do pliku. Tak więc poniższa metoda jest bardzo prostym sposobem na zapisanie obiektów słownika do pliku w postaci tekstowej. Ale ten kod nie zadziała, jeśli chcemy dołączyć do pliku nowy obiekt słownika, ponieważ nadpisze on poprzednio zapisane dane. W tym celu zobaczymy to w następnym kodzie.

Przykład: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'Miasto':'Nowy Jork', 'Kraj':„ZASTOSOWANIA”, 'Ranga':3},
{'Miasto':'Sydnej', 'Kraj':'Australia', 'Ranga':5},
{'Miasto':'Dubai', 'Kraj':„ZEA”, 'Ranga':10},
{'Miasto':„Bombaj”, 'Kraj':'Indie', 'Ranga':17},
{'Miasto':„Pekin”, 'Kraj':'Chiny', 'Ranga':7},
]

Nazwa pliku= 'dykt.txt'

# Zapisywanie listy obiektów dict do pliku
z otwarty(Nazwa pliku,tryb='w') jakF:
F.pisać(P(dictDemo))

Wyjście: dykt.txt

[{'Miasto':'Nowy Jork', 'Kraj':„ZASTOSOWANIA”, 'Ranga':3},
{'Miasto':'Sydnej', 'Kraj':'Australia', 'Ranga':5},
{'Miasto':'Dubai', 'Kraj':„ZEA”, 'Ranga':10},
{'Miasto':„Bombaj”, 'Kraj':'Indie', 'Ranga':17},
{'Miasto':„Pekin”, 'Kraj':'Chiny', 'Ranga':7}]

Linia 1 do 11 : Stworzyliśmy listę obiektów słownika i przypisaliśmy nazwę pliku dict.txt do zmiennej nazwa pliku.

Linia 14 do 15 : Używamy tutaj instrukcji ‘with’, która automatycznie obsługuje wyjątek. I zapisujemy listę obiektów dict jako ciąg znaków do pliku.

Przykład: dict_to_txt_2.py

Widzieliśmy, jak zapisać obiekty dict do pliku w formie .txt. Ale w powyższym kodzie jest jeden problem z dołączaniem nowego obiektu. Zmieniamy więc metodę append z „w” na „a”, co może rozwiązać nasz problem, jak pokazano poniżej w kodzie.

#dict_to_txt_2.py

''':cvar
Ten kod zapisze obiekty dict w pliku z
tryb dołączania.
'' ''

dictDemo= [
{'Miasto':'Nowy Jork', 'Kraj':„ZASTOSOWANIA”, 'Ranga':3},
{'Miasto':'Sydnej', 'Kraj':'Australia', 'Ranga':5},
{'Miasto':'Dubai', 'Kraj':„ZEA”, 'Ranga':10},
{'Miasto':„Bombaj”, 'Kraj':'Indie', 'Ranga':17},
{'Miasto':„Pekin”, 'Kraj':'Chiny', 'Ranga':7},
]

Nazwa pliku= „dict_to_file_appendMode.txt”

# Zapisywanie listy obiektów dict do pliku
z otwarty(Nazwa pliku,tryb='do') jakF:
F.pisać(P(dictDemo))

Linia 7 do 15 : Stworzyliśmy listę obiektów słownika i przypisaliśmy nazwę pliku dict_to_file_appendMode.txt do zmiennej nazwa pliku.

Linia 18 do 19 : Zmieniamy tryb = ‘a’ i to rozwiąże nasz problem. Poniższe dane wyjściowe pokazują, że dodaliśmy dwa obiekty dict w tym samym pliku bez nadpisywania poprzednich danych.

Wyjście: dict_to_file_appendMode.txt

[{'Miasto':'Nowy Jork', 'Kraj':„ZASTOSOWANIA”, 'Ranga':3},
{'Miasto':'Sydnej', 'Kraj':'Australia', 'Ranga':5},
{'Miasto':'Dubai', 'Kraj':„ZEA”, 'Ranga':10},
{'Miasto':„Bombaj”, 'Kraj':'Indie', 'Ranga':17},
{'Miasto':„Pekin”, 'Kraj':'Chiny', 'Ranga':7}]

[{'Miasto':'Nowy Jork', 'Kraj':„ZASTOSOWANIA”, 'Ranga':3},
{'Miasto':'Sydnej', 'Kraj':'Australia', 'Ranga':5},
{'Miasto':'Dubai', 'Kraj':„ZEA”, 'Ranga':10},
{'Miasto':„Bombaj”, 'Kraj':'Indie', 'Ranga':17},
{'Miasto':„Pekin”, 'Kraj':'Chiny', 'Ranga':7}]

Metoda 4: Zapisz obiekt dict do pliku przy użyciu metody marynowania.

Możemy również zapisać obiekt dict do pliku za pomocą modułu python pickle. Moduł pickle obsługuje wiele obiektów do serializacji w Pythonie, a także obsługuje obiekty dict.

# dict_to_file_use_pickle.py

import marynata

dictDemo= [
{'Miasto':'Nowy Jork', 'Kraj':„ZASTOSOWANIA”, 'Ranga':3},
{'Miasto':'Sydnej', 'Kraj':'Australia', 'Ranga':5},
{'Miasto':'Dubai', 'Kraj':„ZEA”, 'Ranga':10},
{'Miasto':„Bombaj”, 'Kraj':'Indie', 'Ranga':17},
{'Miasto':„Pekin”, 'Kraj':'Chiny', 'Ranga':7},
]

Nazwa pliku= 'picklefile.pkl'

z otwarty(Nazwa pliku, 'z dala') jakF:
marynata.wysypisko(dictDemo,F)

Linia 3 do 13 : Importujemy moduł pickle i tworzymy listę obiektów dict. Tworzymy również nazwę pliku, w której zapiszemy nasze obiekty dict.

Linia 15 do 16 : Używamy tutaj instrukcji ‘with’ i otwieramy plik z trybem dołączania i formatem binarnym. Następnie wrzucamy obiekty dict do pliku.

Wniosek

Widzieliśmy więc różne metody zapisywania obiektu słownika do pliku. Od użytkownika zależy, jak chce zapisać obiekt do pliku. Najczęstsze metody zapisywania obiektu dict w pliku to JSON i CSV. Formaty JSON i CSV są bardzo znane z punktu widzenia programowania lub łatwe w obsłudze w Pythonie. Widzieliśmy również tryb dopisywania plików.

Kod do tego artykułu można pobrać z tego linku:

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