Fayllar bilan ishlashga kirganimizdan so’ng, endi fayl o’qishni chuqur o’rganamiz. Diskdagi ma’lumotni dasturga olib kirish — bu kundalik vazifa: sozlama fayllari, log yozuvlari, matnli hisobotlar, JSON ma’lumotlari. Python fayl o’qishning bir necha qulay usulini beradi.
Fayl o’qish — diskdagi fayl tarkibini dastur xotirasiga olib kirish jarayoni. Python
read(),readline()vareadlines()metodlari hamda sikl orqali o’qishning turli usullarini taqdim etadi.
Butun faylni o’qish — read()
Eng sodda usul — read() metodi butun fayl tarkibini bitta satr sifatida qaytaradi. Faraz qilaylik, matn.txt faylida uch qator bor:
with open("matn.txt", "r") as fayl:
tarkib = fayl.read()
print(tarkib)
Birinchi qator
Ikkinchi qator
Uchinchi qator
read() faylni to’liq o’qidi. Bu kichik fayllar uchun qulay, biroq juda katta fayllarda butun tarkibni xotiraga yuklash tavsiya etilmaydi.
O’qish metodlari
Fayl o’qishning asosiy metodlarini jadvalda solishtiramiz:
| Metod | Qaytaradi |
|---|---|
read() |
butun faylni bitta satr sifatida |
read(n) |
dastlabki n ta belgini |
readline() |
bitta qatorni |
readlines() |
barcha qatorlarni ro’yxat sifatida |
read(n) bilan faqat kerakli qismini o’qish mumkin:
with open("matn.txt", "r") as fayl:
print(fayl.read(7)) # dastlabki 7 belgi
Birinch
Qatorma-qator o’qish — readline()
readline() faqat bitta qatorni o’qiydi. Har chaqirilganda keyingi qatorga o’tadi:
with open("matn.txt", "r") as fayl:
print(fayl.readline().strip())
print(fayl.readline().strip())
Birinchi qator
Ikkinchi qator
strip() bu yerda har qator oxiridagi ko’rinmas yangi qator belgisini (\n) olib tashlaydi — shuning uchun ortiqcha bo’sh qatorlar chiqmaydi.
Eng yaxshi usul: sikl bilan o’qish
Katta fayllarni o’qishning eng to’g’ri va tejamkor usuli — faylni to’g’ridan-to’g’ri for sikliga berish. U qatorma-qator o’qiydi va xotirani tejaydi:
with open("matn.txt", "r") as fayl:
for raqam, qator in enumerate(fayl, start=1):
print(f"{raqam}: {qator.strip()}")
1: Birinchi qator
2: Ikkinchi qator
3: Uchinchi qator
Bu yerda enumerate har bir qatorga tartib raqam qo’shdi. Faylni siklga berish — millionlab qatorli fayl bilan ham xotira to’lib ketmasdan ishlashning kalitidir.
Xato ehtimolini hisobga olish
Mavjud bo’lmagan faylni o’qishga urinsangiz, FileNotFoundError yuz beradi. Uni try-except bilan xavfsizlaymiz:
try:
with open("yoq.txt", "r") as fayl:
print(fayl.read())
except FileNotFoundError:
print("Xato: bunday fayl topilmadi")
Xato: bunday fayl topilmadi
Bu naqsh — fayl o’qish va xatolarni boshqarishni birlashtirib — ishonchli dastur yozishning amaliy namunasi.
Xulosa
Bu darsda read(), read(n), readline(), readlines() metodlari, for sikli bilan tejamkor o’qish, enumerate va xatoni ushlashni o’rgandik. Katta fayllar uchun siklli o’qish eng maqbul usul. Keyingi darsda faylga yozish va yaratishga o’tamiz.