with open(FILENAME, "rb") as file:
ism = pickle.load(file) yosh = pickle.load(file)
print("Ism: ", ism, "\tYosh: ", yosh)
dump() funksiyasi bilan ikki obyekt ketma-ket yoziladi. Shu sababli, fayldan ketma-ketlikda load() funksiyasi yordamida o„qiganimizda mos ravishda yozilgan obyektlarni olamiz. Dastur ishlaganda konsol ekraniga quyidagilar chiqariladi:
Shu tarzda, faylga obyektlar to‟plamini saqlashimiz va undan o‟qib olishimiz mumkin:
1
2
3
4 5
6
7
8
9
10
11
12
13
14
15
16
17 18
|
import pickle
FILENAME = "users.dat"
users = [
["Ali", 25, True],
["Sobir", 32, False],
["Dilnoza", 14, False]
] with open(FILENAME, "wb") as file:
pickle.dump(users, file)
with open(FILENAME, "rb") as file:
users_from_file = pickle.load(file) for user in users_from_file:
print("Ism: ", user[0], "\tYosh: ", user[1],
"\tUylangan(turmushga chiqan): ", user[2])
|
Faylga dump() funktsiyasidan foydalanib qanday obyekt yozilsa, fayldan load() funksiyasi orqali xuddi shu obyekt o‟qiladi.
Natijaning konsolga chiqarilishi:
1
2
3
|
Ism: Ali Yosh: 25 Uylangan(turmushga chiqan): True
Ism: Sobir Yosh: 32 Uylangan(turmushga chiqan): False
Ism: Dilnoza Yosh: 14 Uylangan(turmushga chiqan): False
|
3.5. shelve moduli
Binar fayllar bilan ishlash uchun Pythonda yana bitta modul - shelve modulidan foydalanish mumkin. Obyektlarni maxsus kalitga ega faylga saqlaydi.
Keyinchalik, bu kalit yordamida avvaldan saqlangan obyektni fayldan oqib olinadi. shelve modul orqali ma'lumotlarni ishlash jarayoni lug'atlarga o'xshash, shuning uchun obyektlarni saqlash va o‟qib olish uchun kalitlardan foydalaniladi.
Faylni ochish uchun shelve moduli open() funktsiyasidan foydalanadi:
1
|
open(fayl_manzili[, flag="c"[, protocol=None[, writeback=False]]])
|
flag parametri quyidagi qiymatlarni qabul qilishi mumkin:
c - faylni o'qish va yozish uchun ochadi (flag=c, flag parametrining kelishuv bo‟yicha qiymati aynan c ga teng). Agar fayl mavjud bo'lmasa, u yaratiladi;
r - fayl faqat o'qish uchun ochiladi;
w - fayl faqat yozish uchun ochiladi;
n - fayl yozish uchun ochilgan. Agar fayl mavjud bo'lmasa, fayl yaratiladi.
Agar mavjud bo'lsa, u holda fayl qayta yozish uchun ochiladi.
Faylga ulanishni yopish uchun close() metodidan foydalaniladi:
1
2 3
|
import shelve
d = shelve.open(faylnomi)
d.close()
|
Yoki faylni with operatoridan foydalanib ochishingiz mumkin. Quyidagi dasturda faylga bir nechta obyektni saqlash va keyin undan o‟qib olish ko‟rsatilgan:
1
2
3
4
5
6
7
8
9
10
11
12
|
|
Do'stlaringiz bilan baham: |