Skip to main content

6-dars. Istisno (Exception). Fayllar bilan ishlash. (JSON fayllar bilan ishlash)

Dars maqsadlari:

  • Fayllar Bilan Ishlash
    • Fayllar bilan ishlash asoslarini o'rganish.
    • Ma'lumotlarni faylga yozish va o'qish usullarini tushunish.
    • write, writelines, seek, va tell funksiyalarini amaliyotda qo'llash.
  • JSON Fayli Bilan Ishlash
    • JSON formatining nima ekanligini tushunish.
    • Python dasturlash tilida JSON fayllari bilan qanday ishlashni o'rganish.
    • JSON ma'lumotlarini o'qish va yozish jarayonlarini amaliy misollar bilan ko'rish.

Fayllar Bilan Ishlash

Kirish

Dasturlar ko'pincha ma'lumotlarni saqlash uchun fayllardan foydalanadi. Fayl yaratish, ularga ma'lumot yozish va o'qish jarayonlari dasturchilar uchun juda muhim. Keling, bu jarayonlarni birgalikda o'rganamiz!

Fayl Bilan Ishlash

Fayl bilan ishlash — bu faylni ochish, unga ma'lumot yozish va o'qish jarayoni hisoblanadi. Python dasturlash tilida fayllar bilan ishlash uchun bir qator funksiyalar mavjud.

Faylni Ochish

Faylni ochish uchun open() funksiyasidan foydalanamiz. Bu funksiya quyidagi sintaksisga ega:

fayl = open('fayl_nomi.txt', 'r')  # 'r' — o'qish rejimi

Fayl ochish uchun bir nechta rejimlar mavjud:

  • 'r': O'qish rejimi (fayl faqat o'qiladi).
  • 'w': Yozish rejimi (faylga yozish uchun, agar fayl mavjud bo'lsa, uni o'chiradi).
  • 'a': Qo'shish rejimi (faylga ma'lumot qo'shadi).
  • 'b': Ikkilik rejim (binary fayllar bilan ishlash).

Faylga Ma'lumot Yozish

write() va writelines() funksiyalari faylga ma'lumot yozish uchun ishlatiladi.

write() Funktsiyasi

write() funksiyasi bir satr ma'lumot yozish uchun ishlatiladi.

fayl = open('fayl_nomi.txt', 'w')  # Yozish rejimida ochamiz
fayl.write("Salom, Python!") # Faylga yozamiz
fayl.close() # Faylni yopamiz

writelines() Funktsiyasi

writelines() funksiyasi bir necha satr ma'lumot yozish uchun ishlatiladi. U list (ro'yxat) sifatida berilgan ma'lumotlarni faylga yozadi.

satrlar = ["Birinci satr\n", "Ikkinchi satr\n", "Uchinchi satr\n"]
fayl = open('fayl_nomi.txt', 'w')
fayl.writelines(satrlar) # Ro'yxatdagi barcha satrlarni faylga yozamiz
fayl.close()

Fayldan Ma'lumot O'qish

Fayldan ma'lumot o'qish uchun read(), readline(), va readlines() funksiyalaridan foydalanishimiz mumkin.

read() Funktsiyasi

read() funksiyasi faylning barcha ma'lumotlarini o'qiydi.

fayl = open('fayl_nomi.txt', 'r')
malumot = fayl.read() # Fayl ma'lumotini o'qiydi
print(malumot) # O'qilgan ma'lumotni chiqaramiz
fayl.close()

readline() Funktsiyasi

readline() funksiyasi fayldagi bir satrni o'qiydi.

fayl = open('fayl_nomi.txt', 'r')
birinchi_satr = fayl.readline() # Birinchi satrni o'qiydi
print(birinchi_satr) # O'qilgan satrni chiqaramiz
fayl.close()

readlines() Funktsiyasi

readlines() funksiyasi fayldagi barcha satrlarni ro'yxatga saqlaydi.

fayl = open('fayl_nomi.txt', 'r')
satrlar = fayl.readlines() # Barcha satrlarni o'qiydi
print(satrlar) # O'qilgan satrlarni chiqaramiz
fayl.close()

seek() va tell() Funktsiyalari

  • seek(offset): Faylda o'qish yoki yozish pozitsiyasini o'zgartiradi. offset — pozitsiya (ya'ni qaysi joyga o'tish kerak).
fayl = open('fayl_nomi.txt', 'r')
fayl.seek(0) # Faylning boshiga o'tamiz
  • tell(): Hozirgi o'qish yoki yozish pozitsiyasini qaytaradi.
fayl = open('fayl_nomi.txt', 'r')
pozitsiya = fayl.tell() # Hozirgi pozitsiyani olish
print(pozitsiya) # O'qigan pozitsiyani chiqaramiz

Qiziqarli Faktlar

  • Fayllar kompyuterda ma'lumotlarni saqlash uchun zarur. Ular matn, rasm, video va boshqa formatlarda bo'lishi mumkin.
  • Python fayllarni ochish va ularga ma'lumot yozish jarayonini osonlashtiradi, bu esa dasturchilar uchun juda qulay.

Misollar

  1. Faylga talabalar ro'yxatini yozish:

    talabalar = ["Ali\n", "Vali\n", "Tohir\n"]
    fayl = open('talabalar.txt', 'w')
    fayl.writelines(talabalar) # Talabalar ro'yxatini faylga yozamiz
    fayl.close()
  2. Fayldan ma'lumot o'qish:

    fayl = open('talabalar.txt', 'r')
    print(fayl.read()) # Fayldagi ma'lumotni chiqaramiz
    fayl.close()
  3. Faylni yangilash:

    fayl = open('talabalar.txt', 'a')  # Qo'shish rejimida ochamiz
    fayl.write("Madina\n") # Yangi talaba qo'shamiz
    fayl.close()

JSON Fayli Bilan Ishlash

Kirish

JSON (JavaScript Object Notation) — bu ma'lumotlarni saqlash va almashish uchun mo'ljallangan juda oson va qulay format. Bu format dasturchilar orasida juda mashhur, chunki u ko'p dasturlash tillarida qo'llaniladi, jumladan, Python’da ham.

JSON Formatining Tushunchasi

JSON — bu oddiy matnli format bo'lib, u ma'lumotlarni tuzilmasini belgilashda foydalaniladi. JSON fayllari asosan ikkita asosiy tuzilishga ega:

  1. Obyektlar: Kalit-qiymat juftlaridan iborat.
    • Misol: {"ism": "Ali", "yosh": 25}
  2. Massivlar: Tartiblangan qiymatlar ro'yxati.
    • Misol: ["red", "green", "blue"]

JSON Fayllarining Afzalliklari

  • Oson o'qilishi va yozilishi: JSON fayllarini o'qish va ularga yozish juda sodda.
  • Platformalararo moslik: JSON barcha dasturlash tillarida qo'llanilishi mumkin.
  • Tuzilmalilik: Ma'lumotlar to'g'ri tashkil etilgan va ko'rinishi oson.

JSON Faylini O'qish va Yozish

Python'da JSON Kutubxonasi

Python'da JSON formatidagi ma'lumotlarni o'qish va yozish uchun json moduli ishlatiladi. Bu modul yordamida JSON ma'lumotlarini Python obyektlariga o'zgartirish yoki aksincha, Python obyektlarini JSON formatiga aylantirish mumkin.

JSON Faylini O'qish

Keling, JSON faylini qanday o'qishni ko'raylik. Avval JSON faylini yaratamiz. data.json faylini quyidagi tarkib bilan yarataylik:

{
"talabalar": [
{"ism": "Ali", "yosh": 20},
{"ism": "Oygul", "yosh": 22},
{"ism": "Hasan", "yosh": 21}
]
}

JSON Faylini O'qish

import json  # JSON modulini import qilamiz

# JSON faylini ochamiz
with open('data.json', 'r', encoding='utf-8') as fayl:
malumot = json.load(fayl) # Fayldan JSON ma'lumotini o'qiymiz

# O'qilgan ma'lumotni chiqaramiz
print(malumot) # {'talabalar': [{'ism': 'Ali', 'yosh': 20}, ...]}

Izoh:

json.load() funksiyasi JSON faylidan ma'lumotlarni o'qiydi va ularni Python obyektiga (masalan, ro'yxat yoki lug'at) aylantiradi.

JSON Faylini Yozish

Endi esa JSON formatidagi ma'lumotlarni qanday yozishni ko'raylik. Biz quyidagi Python kodidan foydalanamiz:

import json  # JSON modulini import qilamiz

# Ma'lumotlarni tayyorlaymiz
talabalar = {
"talabalar": [
{"ism": "Ali", "yosh": 20},
{"ism": "Oygul", "yosh": 22},
{"ism": "Hasan", "yosh": 21}
]
}

# JSON fayliga yozamiz
with open('yangi_data.json', 'w', encoding='utf-8') as fayl:
json.dump(talabalar, fayl, ensure_ascii=False, indent=4) # JSON ma'lumotlarini yozamiz

Izoh:

json.dump() funksiyasi Python obyektlarini JSON formatida faylga yozadi. ensure_ascii=False parametri non-ASCII belgilarni to'g'ri saqlash imkonini beradi. indent=4 esa faylni formatlaydi va o'qilishi oson bo'lishini ta'minlaydi.

Qiziqarli Faktlar

  • JSON va XML: JSON ko'pincha XML formatiga qaraganda osonroq va tezroq hisoblanadi, shuning uchun ko'p dasturchilar JSON'ni afzal ko'radi.
  • JavaScript bilan Moslik: JSON formatidagi ma'lumotlar JavaScript dasturlash tilida ham foydalaniladi, bu esa ularni veb dasturlashda keng qo'llash imkonini beradi.

Misollar

  1. Ma'lumotlarni saqlash: Deylik, sizda talabalarning ma'lumotlari bor va ularni JSON faylida saqlamoqchisiz. Yuqorida keltirilgan kod yordamida buni osonlik bilan amalga oshirishingiz mumkin.

  2. Web API dan foydalanish: Ko'plab veb xizmatlar JSON formatida ma'lumotlarni uzatadi. Siz Python'da bu ma'lumotlarni olish va tahlil qilish uchun requests modulidan foydalanishingiz mumkin.

    import requests
    import json

    # API dan ma'lumot olish
    javob = requests.get('https://jsonplaceholder.typicode.com/posts')
    malumot = json.loads(javob.text) # JSON ma'lumotini o'qiymiz
    print(malumot)

Xulosa

Fayl ochish, ma'lumot yozish va o'qish jarayonlari Python dasturlash tilida qanday amalga oshirilishini ko'rdik. write, writelines, seek, va tell funksiyalarini ishlatish orqali biz fayllar bilan ishlashni yanada osonlashtirdik.

Biz JSON faylini o'qish va yozish jarayonlarini amaliy misollar bilan ko'rdik. JSON juda muhim format bo'lib, ma'lumotlarni oson saqlash va almashishga yordam beradi.

Savollar va Javoblar

  1. Faylni qanday ochamiz?
    • Faylni open() funksiyasi yordamida ochamiz, masalan: open('fayl_nomi.txt', 'r').
  2. write() funksiyasi nima qiladi?
    • write() funksiyasi faylga bir satr ma'lumot yozadi.
  3. seek() funksiyasi nima uchun ishlatiladi?
    • seek() funksiyasi faylning o'qish yoki yozish pozitsiyasini o'zgartiradi.
  4. Fayldan barcha satrlarni qanday o'qish mumkin?
    • Fayldan barcha satrlarni o'qish uchun readlines() funksiyasidan foydalanamiz.
  5. JSON faylini qanday o'qiymiz?
    • JSON faylini o'qish uchun json.load() funksiyasidan foydalanamiz.
  6. json.dump() funksiyasi nima qiladi?
    • json.dump() funksiyasi Python obyektlarini JSON formatida faylga yozadi.
  7. JSON va XML o'rtasidagi farq nima?
    • JSON o'qish va yozish uchun osonroq bo'lib, ko'pincha XML formatidan afzal ko'riladi.
  8. JSON formatida qanday tuzilmalar mavjud?
    • JSON obyekti (kalit-qiymat juftlari) va massivlardan (ro'yxatlar) iborat.