5 - BOB. Pythonda Fayllar va Istisnolar Bilan Ishlash
Last updated
Last updated
Ushbu bobda Python'da fayllar bilan ishlash, istisnolarni boshqarish, va foydalanuvchidan ma'lumot olish (user input) haqida to‘liq nazariy tushunchalar va amaliy misollar bilan tanishamiz. Fayllar bilan ishlash turli ma'lumotlarni saqlash va ulardan qayta foydalanish imkoniyatini yaratadi, istisnolar bilan boshqarish esa dastur bajarilishida yuzaga kelishi mumkin bo‘lgan xatolarni ushlab, ularni to‘g‘ri boshqarish imkonini beradi.
Nazariy Ma'lumotlar:
Fayllar bilan ishlash ko‘plab dasturlash sohalarida zarur bo‘ladi. Fayllar yordamida dasturni qayta ishga tushirganda ham ma'lumotlarni saqlab qolish, o‘qish va o‘zgartirish kabi jarayonlar amalga oshiriladi. Python’da fayllar bilan ishlash oson va qulay qilib ishlab chiqilgan.
Python’da fayllar bilan ishlashda eng ko‘p ishlatiladigan funksiya bu open()
funksiyasidir. Faylni ochish jarayonida bu funksiyadan foydalanib, biz fayl bilan amallarni bajarishimiz mumkin. Faylni ochishdan maqsad:
Faylni o‘qish: Fayldagi mavjud ma'lumotlarni olish uchun.
Faylga yozish: Faylga yangi ma'lumot qo‘shish yoki mavjudini o‘zgartirish uchun.
Faylni ochishda rejimlar ishlatiladi:
"r"
— O‘qish rejimi. Fayl faqat o‘qish uchun ochiladi. Fayl mavjud bo‘lishi kerak. Aks holda, xatolik yuz beradi.
"w"
— Yozish rejimi. Fayl mavjud bo‘lsa, uni to‘liq bo‘shatib yangi ma'lumot yoziladi. Fayl mavjud bo‘lmasa, yangi fayl yaratiladi.
"a"
— Qo‘shish rejimi (append). Faylga yangi ma'lumotlar qo‘shiladi, eski ma'lumotlar saqlanib qoladi. Agar fayl mavjud bo‘lmasa, yangi fayl yaratiladi.
"x"
— Yangi fayl yaratish rejimi. Agar fayl mavjud bo‘lsa, xatolik yuz beradi. Fayl faqat mavjud bo‘lmagan holatda yaratiladi.
Fayl bilan ishlashda muhim qadam bu — faylni yopish. Fayl bilan ish tugagandan so‘ng, close()
funksiyasi orqali fayl yopilishi kerak. Agar fayl yopilmasa, ma'lumotlar to‘liq saqlanmasligi yoki xotira resurslarining ortiqcha sarfi kuzatilishi mumkin.
Amaliy Misol 1: Faylni O‘qish
Faylni ochib, undagi ma'lumotlarni o‘qish uchun:
Tushuntirish:
open("example.txt", "r")
: Faylni o‘qish rejimida ochadi.
read()
: Fayldagi barcha ma'lumotlarni o‘qib beradi.
Faylni o‘qish tugagach, close()
bilan yopiladi.
Amaliy Misol 2: Faylga Yozish
Faylga yozish uchun "w"
rejimi ishlatiladi. Bu rejim fayl mavjud bo‘lsa, uni bo‘shatadi va yangi ma'lumot yozadi.
Tushuntirish:
"w"
rejimi orqali fayl ochiladi va unga yangi ma'lumotlar yoziladi.
Fayldagi eski ma'lumotlar o‘chiriladi.
Amaliy Misol 3: Faylga Qo‘shish (Append)
Fayldagi ma'lumotlarni o‘chirib yubormasdan yangi ma'lumotlar qo‘shish uchun "a"
rejimi ishlatiladi.
Tushuntirish:
"a"
rejimi orqali fayl ochiladi va yangi ma'lumot oxiriga qo‘shiladi.
Amaliy Misol 4: Faylni Xavfsiz Yopish (with yordamida)
Fayllar bilan ishlashda faylni ochgach, uni yopishni unutmaslik kerak. Python’da faylni ochib va ish tugagach avtomatik yopilishini ta’minlash uchun with
kalit so‘zidan foydalaniladi.
Tushuntirish:
with
yordamida fayl ochiladi va blokdan chiqish bilan avtomatik ravishda yopiladi. Bu usul yordamida faylni qo‘lda yopishni unutib qo‘ymaslik ta'minlanadi.
Fayllar Bilan Ishlashdagi Muammolar:
Fayl mavjud bo‘lmasa, FileNotFoundError xatosi yuz beradi.
Yozish yoki o‘qish jarayonida fayl noto‘g‘ri rejimda ochilgan bo‘lsa, xatolik yuz berishi mumkin.
Bunday holatlarni oldini olish uchun istisnolar bilan boshqarish juda muhim (istisnolar bo‘limida tushuntiriladi).
Nazariy Ma'lumotlar:
Python'da dastur bajarilish vaqtida turli xatoliklar yuz berishi mumkin. Masalan, fayl mavjud emasligi, foydalanuvchi noto‘g‘ri ma'lumot kiritishi yoki nolga bo‘lish kabi xatolar istisnolar deb ataladi. Istisnolar dastur bajarilishini to‘xtatishi mumkin, ammo try-except
yordamida bunday xatolarni boshqarib, dasturda nima sodir bo‘lganligini bilish va kerakli choralarni ko‘rishimiz mumkin.
Istisno — bu Python dasturida biror xato yuz berganda chiqariladigan xabar yoki jarayon. Python’da istisnolarni boshqarish uchun quyidagi operatorlardan foydalaniladi:
try
: Xatolik yuz berishi mumkin bo‘lgan kodni joylashtiradi.
except
: try
blokida xatolik yuz berganida bajariladigan kod.
else
: try
blokida xatolik yuz bermasa, else
bloki bajariladi.
finally
: Xatolik bo‘ladimi yoki yo‘q, har doim bajariladigan kod.
Try-Except Sintaksisi:
Amaliy Misol 1: Try-Except Bilan Istisnolarni Boshqarish
Tushuntirish:
try
blokida foydalanuvchidan son qabul qilishga harakat qilinadi.
Agar foydalanuvchi noto‘g‘ri ma'lumot kiritgan bo‘lsa, ValueError
xatosi ushlanadi va except
bloki ishga tushadi.
Natija: Agar foydalanuvchi matn kiritsa, "Noto‘g‘ri ma'lumot kiritildi" degan xabar chiqadi.
Amaliy Misol 2: Bir Necha Xatolarni Boshqarish
Tushuntirish:
Bir nechta istisnoni bir kodda boshqarish mumkin.
ValueError agar foydalanuvchi son kiritmasa yuzaga keladi, ZeroDivisionError esa foydalanuvchi nolga bo‘lishga harakat qilganda chiqadi.
Try-Else-Finally Bilan Istisnolarni Boshqarish
else
bloki faqat istisno bo‘lmagan hollarda ishlatiladi, finally
bloki esa har doim bajariladi.
Tushuntirish:
Agar fayl topilmasa, FileNotFoundError
istisnosi ushlanadi.
Fayl muvaffaqiyatli ochilsa, else
bloki ishlaydi va faylni o‘qib beradi.
finally
bloki esa fayl ochilgan yoki ochilmaganidan qat'i nazar har doim bajariladi va fayl yopiladi.
Nazariy Ma'lumotlar:
Dastur foydalanuvchidan ma'lumot olish uchun input()
funksiyasidan foydalanadi. Bu funksiya foydalanuvchidan kiritilgan ma'lumotni string (satr) sifatida qaytaradi. Agar foydalanuvchidan sonli ma'lumot kiritilishi talab etilsa, string ko‘rinishidagi ma'lumotni int()
yoki float()
kabi funksiyalar yordamida sonli turga aylantirish kerak bo‘ladi.
Amaliy Misol 1: Foydalanuvchidan Son Olish
Tushuntirish:
input()
funksiyasi foydalanuvchidan ma'lumot oladi.
int()
funksiyasi bu ma'lumotni songa aylantiradi.
Amaliy Misol 2: Istisnolar Bilan Ma'lumotni Tekshirish
Foydalanuvchidan noto‘g‘ri ma'lumot kiritilganda istisnolar bilan boshqarishni ta'minlashimiz mumkin.
Tushuntirish:
Agar foydalanuvchi son o‘rniga boshqa ma'lumot kiritgan bo‘lsa, ValueError
xatosi yuz beradi va foydalanuvchiga son kiritish so‘raladi.
Ushbu bobda Pythonda fayllar bilan ishlash, istisnolarni boshqarish va foydalanuvchi kiritmasi (input) bilan ishlash haqida to‘liq ma'lumot oldik. Fayllar bilan ishlash bizga ma'lumotlarni saqlash, o‘qish va tahrirlash imkoniyatini beradi. Istisnolarni boshqarish esa dastur bajarilayotganda yuzaga kelishi mumkin bo‘lgan xatoliklarni ushlab, ularni to‘g‘ri boshqarishga imkon beradi. Foydalanuvchidan ma'lumot olish esa foydalanuvchi bilan interaktiv muloqot qilish imkonini beradi.