Simpan perintah ke fail

Save Dict File



Kamus adalah objek yang sangat terkenal di python. Dan ia adalah kumpulan kunci dan nilai. Kunci perintah mesti tidak berubah, dan boleh berupa bilangan bulat, terapung, tali, tetapi senarai atau kata perintah itu sendiri tidak boleh menjadi kunci. Oleh itu, kadang-kadang kita perlu menyimpan objek imbas ke dalam fail. Oleh itu, kita akan melihat kaedah yang berbeza untuk menyimpan objek imbas dalam fail.

Kita boleh menulis kamus ke fail di Python dengan cara yang berbeza seperti:







  1. Fail nilai yang dipisahkan koma (.csv)
  2. Fail Json (.json)
  3. Fail teks (.txt)
  4. Fail acar (.pkl)

Kami akan menerangkan semua kaedah di atas.



Kaedah 1: Simpan kamus dalam format CSV

Untuk menyimpan kamus ke dalam CSV (Comma Separated Values), kami menggunakan modul CSV. Nilai yang dipisahkan koma untuk menyelamatkan ular sawa adalah kaedah yang paling biasa dan terkenal. Sebilangan besar pengaturcara menggunakan kaedah ini hanya untuk menyimpan perintah ke fail. Untuk menyimpan kamus dalam fail sebagai CSV sangat mudah kerana kita harus memindahkan data sebagai rentetan.



Contoh_1: dict_to_csv.py





# dict_to_csv.py
mengimport csv

contoh_contoh= {'nama':'LinuxHint', 'bandar':'ITU', 'pendidikan':'Kejuruteraan'}

dengan buka('data.csv', 'dalam') sebagaif:
untukkuncidalamcontoh_contoh.kunci():
f.menulis('% s,% s n'%(kunci,contoh_contoh[kunci]))

Baris 2 : Kami mengimport modul python CSV.

Baris 4 : Kami membuat sampel contoh data. Kami akan cuba menyimpannya dalam bentuk fail CSV.



Baris 6: Kami menggunakan pernyataan ‘with’ di sini untuk menulis fail CSV. Pernyataan ‘with’ menangani pengecualian pengendalian secara automatik semasa membaca atau menulis fail. Kami membuka file data.csv dalam mod penulisan dan memberikan objek tersebut ke pemboleh ubah f.

Baris 7 , Kami menjalankan loop untuk yang mengekstrak kunci, dan pada baris seterusnya, ia menulis kunci dan key_value ke fail CSV. Jadi gelung ini akan berjalan sehingga ada data.

Keluaran: data.csv

nama,LinuxHint
bandar,ITU
pendidikan,Kejuruteraan

Jadi, perkara di atas menunjukkan fail output setelah menulis di data.csv.

Sekarang, kita memahami cara menyimpan imbas ke fail dalam bentuk CSV. Mari cuba dengan contoh lain di mana kita mahu menulis senarai objek imbas ke dalam fail CSV.

Contoh_2: dict_to_csv_2.py

# dict_to_csv_2.py

mengimport csv

csvColumns= ['Bandar', 'Negara', 'Peringkat']
imbasDemo= [
{'Bandar':'New York', 'Negara':'PENGGUNAAN', 'Peringkat':3},
{'Bandar':'Sydney', 'Negara':'Australia', 'Peringkat':5},
{'Bandar':'Dubai', 'Negara':'UAE', 'Peringkat':10},
{'Bandar':'Mumbai', 'Negara':'India', 'Peringkat':17},
{'Bandar':'Bejing', 'Negara':'China', 'Peringkat':7},
]
csvFileName= 'data.csv'
cuba:
dengan buka(csvFileName, 'dalam') sebagaif:
penulis= csv.DictWriter(f,nama lapangan=csvColumns)
penulis.ketua tulis()
untukdatadalamimbasDemo:
penulis.penulis(data)
kecuali Ralat IO:
mencetak('Ada Kesalahan')

Baris 3 hingga 12: Kami mengimport modul python CSV dan membuat senarai objek dik. Kami juga membuat senarai nama lajur.

Baris 13: Kami memberikan nama fail CSV kepada pemboleh ubah.

Baris 15: Kami menggunakan pernyataan ‘with’, dan pernyataan tersebut menetapkan kaedah __enter__ mengembalikan objek ke pemboleh ubah f.

Baris 16 hingga 19: Setelah menetapkan objek kembali ke pemboleh ubah f, kami memanggil kaedah DictWriter dari modul CSV dan melewati dua parameter (nama fail (f) dan nama lajur). Kemudian kami memanggil kaedah lainheheheheader () yang akan menulis baris pertama fail CSV, yang umumnya adalah nama bidang. Kemudian kita jalankan gelung untuk senarai objek imbas dan tulis satu persatu ke fail CSV menggunakan kaedah penulis ().

Kaedah 2: Simpan perintah ke fail teks dalam format JSON (append mode)

Kita juga dapat menyimpan objek-objek yang dikritik dalam bentuk JSON ke dalam fail. Kod di bawah akan menjelaskan perkara yang sama. Kod ini juga menerangkan bagaimana kita dapat menambahkan JSON baru ke senarai JSON yang ada.

Contohnya : dict_to_file_asJSON.py

# dict_to_file_asJSON.py

mengimportjson

imbasDemo= [
{'Bandar':'New York', 'Negara':'PENGGUNAAN', 'Peringkat':3},
{'Bandar':'Sydney', 'Negara':'Australia', 'Peringkat':5},
{'Bandar':'Dubai', 'Negara':'UAE', 'Peringkat':10},
{'Bandar':'Mumbai', 'Negara':'India', 'Peringkat':17},
{'Bandar':'Bejing', 'Negara':'China', 'Peringkat':7},
]

nama fail= 'dict.json'

# Menulis senarai objek imbas ke fail
dengan buka(nama fail,mod='dalam') sebagaif:
json.pembuangan(imbasDemo,f)

# Menulis objek imbasan baru ke fail sebagai lampiran dan menimpa keseluruhan fail
dengan buka(nama fail,mod='dalam') sebagaif:
imbasDemo.tambahkan({'Bandar':'Bejing', 'Negara':'China'})
json.pembuangan(imbasDemo,f)

Pengeluaran : dikt. json

[{'Bandar':'New York', 'Negara':'PENGGUNAAN', 'Peringkat':3},
{'Bandar':'Sydney', 'Negara':'Australia', 'Peringkat':5},
{'Bandar':'Dubai', 'Negara':'UAE', 'Peringkat':10},
{'Bandar':'Mumbai', 'Negara':'India', 'Peringkat':17},
{'Bandar':'Bejing', 'Negara':'China', 'Peringkat':7},
{'Bandar':'Bejing', 'Negara':'China'}
]

Baris 1 hingga 13 : Kami mengimport modul JSON. Kemudian kami membuat senarai objek imbas untuk demo. Kemudian kami memberikan nama fail JSON ke nama fail yang berubah-ubah.

Baris 15 hingga 17 : Kami menggunakan pernyataan ‘with’ untuk membuka fail JSON untuk penulisan, dan kemudian kami menggunakan kaedah json.dump untuk menukar objek imbang ke JSON dan kemudian menulis ke dalam fail.

Baris 20 hingga 22: Garis-garis ini sangat penting kerana apa yang akan berlaku? Sekiranya kita cuba menambahkan objek JSON baru ke fail yang sudah ditulis. Data sebelumnya akan hilang kerana penggantian. Kemudian kita boleh menggunakan nama senarai nama terdahulu seperti yang kita lakukan (dictDemo), dan kemudian kita menambahkan objek baru ke dalamnya. Dan akhirnya, kami menukar keseluruhan fail menjadi JSON dan menimpa keseluruhan fail.

Dalam output, kita dapat melihat bahawa objek JSON baru ditambahkan ke senarai JSON yang ada.

Kaedah 3: Simpan objek kamus ke fail dalam bentuk txt

Kami juga dapat menyimpan kamus ke format rentetan biasa ke dalam fail. Jadi, kaedah di bawah adalah kaedah yang sangat mudah untuk menyimpan objek kamus ke dalam fail dalam bentuk teks. Tetapi kod ini tidak akan berfungsi jika kita ingin menambahkan objek kamus baru ke fail kerana akan menimpa pada data yang ditulis sebelumnya. Jadi, untuk itu, kita akan melihatnya dalam kod seterusnya.

Contoh: dict_to_txt.py

# dict_to_txt.py

imbasDemo= [
{'Bandar':'New York', 'Negara':'PENGGUNAAN', 'Peringkat':3},
{'Bandar':'Sydney', 'Negara':'Australia', 'Peringkat':5},
{'Bandar':'Dubai', 'Negara':'UAE', 'Peringkat':10},
{'Bandar':'Mumbai', 'Negara':'India', 'Peringkat':17},
{'Bandar':'Bejing', 'Negara':'China', 'Peringkat':7},
]

nama fail= 'dict.txt'

# Menulis senarai objek imbas ke fail
dengan buka(nama fail,mod='dalam') sebagaif:
f.menulis(hlm(imbasDemo))

Pengeluaran: imlak.txt

[{'Bandar':'New York', 'Negara':'PENGGUNAAN', 'Peringkat':3},
{'Bandar':'Sydney', 'Negara':'Australia', 'Peringkat':5},
{'Bandar':'Dubai', 'Negara':'UAE', 'Peringkat':10},
{'Bandar':'Mumbai', 'Negara':'India', 'Peringkat':17},
{'Bandar':'Bejing', 'Negara':'China', 'Peringkat':7}]

Baris 1 hingga 11 : Kami membuat senarai objek kamus dan memberikan nama fail diktt ke nama fail pemboleh ubah.

Baris 14 hingga 15 : Kami menggunakan pernyataan ‘with’ di sini, yang secara automatik menangani pengecualian. Dan kami sedang menulis senarai objek imbas sebagai rentetan pada fail.

Contoh: dict_to_txt_2.py

Kami telah melihat cara menyimpan objek imbas ke fail dalam bentuk .txt. Tetapi dalam kod di atas, ada satu masalah dengan menambahkan objek baru. Oleh itu, kami mengubah kaedah penambahan dari ‘w’ menjadi ‘a’, yang dapat menyelesaikan masalah kami seperti yang ditunjukkan di bawah dalam kod.

# dict_to_txt_2.py

'' ': cvar
Kod ini akan menyimpan objek imbas dalam fail dengan
mod tambah.
'' '

imbasDemo= [
{'Bandar':'New York', 'Negara':'PENGGUNAAN', 'Peringkat':3},
{'Bandar':'Sydney', 'Negara':'Australia', 'Peringkat':5},
{'Bandar':'Dubai', 'Negara':'UAE', 'Peringkat':10},
{'Bandar':'Mumbai', 'Negara':'India', 'Peringkat':17},
{'Bandar':'Bejing', 'Negara':'China', 'Peringkat':7},
]

nama fail= 'dict_to_file_appendMode.txt'

# Menulis senarai objek imbas ke fail
dengan buka(nama fail,mod='ke') sebagaif:
f.menulis(hlm(imbasDemo))

Baris 7 hingga 15 : Kami membuat senarai objek kamus dan memberikan nama fail diktto_file_appendMode.txt ke nama fail yang berubah-ubah.

Baris 18 hingga 19 : Kami menukar mod = 'a', dan ini akan menyelesaikan masalah kami. Output di bawah menunjukkan bahawa kita telah menambahkan dua objek imbas dalam fail yang sama tanpa menimpa data sebelumnya.

Keluaran: dict_to_file_appendMode.txt

[{'Bandar':'New York', 'Negara':'PENGGUNAAN', 'Peringkat':3},
{'Bandar':'Sydney', 'Negara':'Australia', 'Peringkat':5},
{'Bandar':'Dubai', 'Negara':'UAE', 'Peringkat':10},
{'Bandar':'Mumbai', 'Negara':'India', 'Peringkat':17},
{'Bandar':'Bejing', 'Negara':'China', 'Peringkat':7}]

[{'Bandar':'New York', 'Negara':'PENGGUNAAN', 'Peringkat':3},
{'Bandar':'Sydney', 'Negara':'Australia', 'Peringkat':5},
{'Bandar':'Dubai', 'Negara':'UAE', 'Peringkat':10},
{'Bandar':'Mumbai', 'Negara':'India', 'Peringkat':17},
{'Bandar':'Bejing', 'Negara':'China', 'Peringkat':7}]

Kaedah 4: Simpan objek imbas ke fail menggunakan kaedah acar.

Kita juga dapat menyimpan objek diktik ke fail menggunakan modul python pickle. Modul acar menyokong banyak objek untuk bersiri dalam python dan juga menyokong objek imbas.

# dict_to_file_use_pickle.py

mengimport acar

imbasDemo= [
{'Bandar':'New York', 'Negara':'PENGGUNAAN', 'Peringkat':3},
{'Bandar':'Sydney', 'Negara':'Australia', 'Peringkat':5},
{'Bandar':'Dubai', 'Negara':'UAE', 'Peringkat':10},
{'Bandar':'Mumbai', 'Negara':'India', 'Peringkat':17},
{'Bandar':'Bejing', 'Negara':'China', 'Peringkat':7},
]

nama fail= 'picklefile.pkl'

dengan buka(nama fail, 'jauh') sebagaif:
acar.pembuangan(imbasDemo,f)

Baris 3 hingga 13 : Kami mengimport acar modul dan membuat senarai objek imbas. Kami juga membuat nama fail di mana kami akan menyimpan objek imbas kami.

Baris 15 hingga 16 : Kami menggunakan pernyataan ‘with’ di sini dan membuka fail dengan mod penambahan dan format binari. Kemudian kami membuang objek-objek yang diketepikan ke dalam fail.

Kesimpulannya

Oleh itu, kami telah melihat kaedah yang berbeza untuk menyimpan objek kamus ke fail. Ini bergantung pada pengguna bahawa bagaimana mereka ingin menyimpan objek ke dalam fail. Kaedah yang paling biasa untuk menyimpan objek imbas ke dalam fail adalah JSON dan CSV. Format JSON dan CSV sangat terkenal dari sudut pengaturcaraan atau mudah dikendalikan dalam python. Kami juga telah melihat mod tambahan untuk menyimpan fail.

Kod untuk artikel ini boleh dimuat turun dari pautan ini:

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