โฌ…๏ธ Bosh sahifaga

๐Ÿ Python: Fayllar bilan ishlash

๐Ÿ“š Bugungi dars mavzusi

Fayl ochish, o'qish, yozish va faylni yopish usullari

๐Ÿ“‚ Fayl ochish

open() funksiyasi bilan

๐Ÿ“– Ma'lumot o'qish

read(), readline(), readlines()

โœ๏ธ Faylga yozish

write(), writelines()

๐Ÿ”’ Faylni yopish

with iborasi va close()

โฐ Dars davomiyligi: 120 daqiqa (2 soat)

๐ŸŽฏ Maqsad: Python'da fayllar bilan professional ishlashni o'rganish

๐Ÿ“– Fayllar bilan ishlash nima?

๐Ÿค” Fayllar nima?

Fayllar โ€” bu kompyuterda ma'lumotlarni saqlash uchun ishlatiladigan obyektlar. Python'da fayllar bilan ishlash uchun open() funksiyasi ishlatiladi.

๐Ÿ“‹ Fayllar bilan ishlashning asosiy bosqichlari:

  • Fayl ochish: open() funksiyasi yordamida
  • O'qish/Yozish: Ma'lumot bilan ishlash
  • Faylni yopish: close() yoki with iborasi

๐Ÿ’ป Asosiy sintaksis:

fayl = open("fayl_nomi.txt", "rejim") # Ishlar bajariladi fayl.close() # Yoki with iborasi bilan (tavsiya etiladi): with open("fayl_nomi.txt", "rejim") as fayl: # Ishlar bajariladi pass # Fayl avtomatik yopiladi

๐Ÿคš Savol: Fayllar bilan ishlash qachon kerak bo'ladi?

Javobingizni o'ylab ko'ring... Ma'lumotlarni saqlash, konfiguratsiya fayllar, log fayllar va h.k.

๐Ÿ”ง Fayl rejimlari

๐Ÿ“ Asosiy rejimlar

Rejim Nomi Tavsifi Misol
"r" Read (O'qish) Faqat o'qish uchun (standart) Ma'lumotlarni o'qish
"w" Write (Yozish) Faylni tozalab, yangidan yozish Yangi fayl yaratish
"a" Append (Qo'shish) Fayl oxiriga qo'shish Log faylga yozish
"r+" Read + Write O'qish va yozish Fayl tahrirlash

โš ๏ธ Muhim eslatma!

"w" rejimi mavjud faylni butunlay o'chirib tashlaydi!

"a" rejimi esa mavjud faylga qo'shadi.

๐Ÿ‹๏ธ Mashq 1

matn.txt nomli faylni o'qish rejimida ochib, uni yoping (haqiqiy fayl yaratmasdan kod yozing).

# Javob: with open("matn.txt", "r") as fayl: pass # Fayl ochildi va avtomatik yopiladi

๐Ÿ“– Fayllardan o'qish

๐Ÿ” O'qish usullari

1๏ธโƒฃ read() - Butun faylni o'qish

with open("matn.txt", "r") as fayl: matn = fayl.read() print(matn) # Natija: Faylning barcha mazmuni

2๏ธโƒฃ readline() - Bir qatorni o'qish

with open("matn.txt", "r") as fayl: qator1 = fayl.readline() qator2 = fayl.readline() print(qator1) # Birinchi qator print(qator2) # Ikkinchi qator

3๏ธโƒฃ readlines() - Barcha qatorlarni ro'yxat sifatida

with open("matn.txt", "r") as fayl: qatorlar = fayl.readlines() print(qatorlar) # ['Salom, dunyo!\n', 'Qalaysan?\n']

4๏ธโƒฃ For tsikli - Eng qulay usul

with open("matn.txt", "r") as fayl: for qator in fayl: print(qator.strip()) # strip() \n ni olib tashlaydi

๐Ÿ’ก Pro maslahat:

strip() funksiyasi qator oxiridagi bo'sh joylar va \n belgisini olib tashlaydi!

โœ๏ธ Faylga yozish

๐Ÿ“ Yozish usullari

1๏ธโƒฃ "w" rejimi - Yangidan yozish

with open("yangi_fayl.txt", "w") as fayl: fayl.write("Bu yangi fayl!\n") fayl.write("Ikkinchi qator.") # Natija: Fayl yaratiladi va matn yoziladi

2๏ธโƒฃ "a" rejimi - Qo'shib yozish

with open("yangi_fayl.txt", "a") as fayl: fayl.write("\nUchinchi qator.") # Natija: Mavjud faylga qo'shiladi

3๏ธโƒฃ writelines() - Ro'yxatni yozish

qatorlar = ["Birinchi qator\n", "Ikkinchi qator\n", "Uchinchi qator\n"] with open("yangi_fayl.txt", "w") as fayl: fayl.writelines(qatorlar)

โš ๏ธ Muhim:

write() avtomatik yangi qator qo'shmaydi. \n ni o'zingiz qo'shishingiz kerak!

๐Ÿ‹๏ธ Mashq 2

salom.txt nomli fayl yarating va unga "Salom, Python!" deb yozing, keyin yangi qator qo'shing.

๐Ÿ”’ with iborasi va faylni yopish

๐Ÿค with iborasi nima uchun kerak?

โœ… with iborasi afzalliklari:

  • Faylni avtomatik yopadi
  • Xatolarda ham fayl yopiladi
  • Kod tozaroq va xavfsizroq
  • Xotirani tejaydi

โŒ Noto'g'ri usul (tavsiya etilmaydi):

fayl = open("matn.txt", "r") matn = fayl.read() print(matn) fayl.close() # Bu qatorni unutish mumkin!

โœ… To'g'ri usul (tavsiya etiladi):

with open("matn.txt", "r") as fayl: matn = fayl.read() print(matn) # Fayl avtomatik yopiladi!

๐Ÿ›ก๏ธ Xavfsizlik

Xatolarda ham fayl yopiladi

๐Ÿงน Tozalik

Kod sodda va tushunarli

๐Ÿ’พ Xotira

Resurslarni tejaydi

โšก Avtomatik

close() chaqirish shart emas

๐Ÿ’ก Eslab qoling:

Har doim with iborasidan foydalaning! Bu professional dasturchilarning belgisi.

๐Ÿ› ๏ธ Amaliy misollar

๐Ÿ’ผ Real loyihalarda qo'llash

๐Ÿ“Š Misol 1: Ma'lumotlar bazasi (oddiy)

# Foydalanuvchilarni faylga saqlash foydalanuvchilar = ["Ali", "Vali", "Guli"] with open("users.txt", "w") as fayl: for user in foydalanuvchilar: fayl.write(f"{user}\n") # Fayldan o'qish with open("users.txt", "r") as fayl: for qator in fayl: print(f"Foydalanuvchi: {qator.strip()}")

๐Ÿ“ Misol 2: Log fayl yaratish

import datetime def log_yozish(xabar): vaqt = datetime.datetime.now() with open("log.txt", "a") as fayl: fayl.write(f"[{vaqt}] {xabar}\n") # Foydalanish log_yozish("Dastur boshlandi") log_yozish("Foydalanuvchi kirdi") log_yozish("Xato yuz berdi")

๐Ÿ”ข Misol 3: Sonlarni saqlash va hisoblash

sonlar = [1, 2, 3, 4, 5, 10, 20, 30] # Sonlarni faylga yozish with open("sonlar.txt", "w") as fayl: for son in sonlar: fayl.write(f"{son}\n") # Fayldan o'qib, yig'indini hisoblash yigindi = 0 with open("sonlar.txt", "r") as fayl: for qator in fayl: yigindi += int(qator.strip()) print(f"Barcha sonlar yig'indisi: {yigindi}")

๐Ÿ‹๏ธ Amaliy mashqlar

๐Ÿ’ช Quyidagi mashqlarni bajaring:

๐ŸŽฏ Mashq 1: Oddiy fayl yaratish

malumot.txt faylini yarating va unga quyidagi matnni yozing:

"Bu birinchi qator.
Bu ikkinchi qator.
Bu uchinchi qator."

Keyin faylni o'qib, barcha qatorlarni ekranga chiqaring.

๐ŸŽฏ Mashq 2: Qo'shish rejimi

Yuqoridagi malumot.txt fayliga "Bu to'rtinchi qator." ni qo'shing va butun faylni qayta o'qib chiqaring.

๐ŸŽฏ Mashq 3: Sonlar bilan ishlash

1 dan 100 gacha sonlarni sonlar.txt fayliga yozing (har bir son alohida qatorda). Keyin fayldan o'qib, juft sonlarning yig'indisini toping.

๐Ÿ’ก Maslahat:

Har bir mashqni step-by-step bajaring. Birinchi mashqni tugatsangiz, keyingisiga o'ting!

โฐ Vaqt:

Har bir mashq uchun 8-10 daqiqa vaqt bering. Tez-tez sinab ko'ring!

โš ๏ธ Xatolar bilan ishlash

๐Ÿšจ Keng uchraydigon xatolar

1๏ธโƒฃ FileNotFoundError

# Noto'g'ri: with open("mavjud_emas.txt", "r") as fayl: matn = fayl.read() # XATO! # To'g'ri: try: with open("mavjud_emas.txt", "r") as fayl: matn = fayl.read() print(matn) except FileNotFoundError: print("Fayl topilmadi!")

2๏ธโƒฃ PermissionError

try: with open("system_fayl.txt", "w") as fayl: fayl.write("Matn") except PermissionError: print("Faylga yozish uchun ruxsat yo'q!")

3๏ธโƒฃ UnicodeDecodeError

# Fayl encoding muammosi uchun: try: with open("fayl.txt", "r", encoding="utf-8") as fayl: matn = fayl.read() except UnicodeDecodeError: print("Fayl encoding xatosi!")

โœ… Xavfsizlik maslahatlari:

  • Har doim try-except ishlatish
  • Faylning mavjudligini tekshirish
  • To'g'ri encoding ko'rsatish
  • with iborasidan foydalanish

๐Ÿ  Uy vazifasi

๐Ÿ“š Bajarilishi shart bo'lgan vazifalar

๐Ÿ“ Vazifa 1: Xabar fayli

  1. xabar.txt nomli fayl yarating
  2. Unga "Assalomu alaykum!" deb yozing
  3. Faylga "\nXayrli kun!" qatorini qo'shing
  4. Faylni o'qib, barcha qatorlarni for tsikli yordamida chiqaring

๐Ÿ“Š Vazifa 2: O'quvchilar ro'yxati

10 ta o'quvchi ismini oquvchilar.txt fayliga yozing va keyin fayldan o'qib:

  • Jami o'quvchilar sonini chiqaring
  • Har bir ismni tartib raqami bilan chiqaring
  • Eng uzun ismni toping

๐Ÿ”ข Vazifa 3: Kalkulyator tarixi

Oddiy kalkulyator dasturi yozing:

  • Foydalanuvchi 2 ta son va amal kiritadi
  • Natijani hisoblab, hisob_tarixi.txt ga saqlaydi
  • Har bir hisob vaqti bilan birga saqlansin
  • Dastur oxirida barcha tarixni ko'rsatsin

๐Ÿ“… Topshirish muddati:

Keyingi darsga qadar barcha vazifalarni bajaring. Savollar bo'lsa, guruhda yozing!

๐Ÿ’ก Maslahat:

Kodni yozishdan oldin qog'ozda rejalashtiring. Har bir vazifani bosqichma-bosqich bajaring!

๐ŸŽฏ Xulosa

โœ… Bugun o'rganganlarimiz:

๐Ÿ“‚ Fayl ochish

open() funksiyasi

Turli rejimlar: r, w, a, r+

๐Ÿ“– O'qish

read(), readline(), readlines()

For tsikli bilan o'qish

โœ๏ธ Yozish

write(), writelines()

Matn va ro'yxat yozish

๐Ÿ”’ Yopish

with iborasi

Avtomatik yopish

๐Ÿ† Asosiy qoidalar:

  • Har doim with iborasidan foydalaning
  • To'g'ri faylni rejimini tanlang
  • Xatolar bilan ishlashni unutmang
  • strip() dan foydalanib, keraksiz bo'shliqlarni olib tashlang
  • Fayl yo'llarini to'g'ri yozing

๐Ÿš€ Keyingi dars:

Python Fayl Operatsiyalari: Binary fayllar, CSV, JSON fayllar bilan ishlash

โ“ Savollar?

Tushunmagan joylar bo'lsa, bemalol so'rang! Biz birga hal qilamiz! ๐Ÿ˜Š