26 / 59

Python Files

Fayl amallari bilan tanishish

Fayl — ma'lumotni saqlash uchun ishlatiladigan nomlangan joy. Masalan, main.py — Python kodini saqlash uchun doimo ishlatiladigan fayl.

Python turli fayl amallarini bajarish uchun turli xil funksiyalarni taqdim etadi, bu jarayon fayllar bilan ishlash (File Handling) deb ataladi.

Pythonda fayllarni ochish

Pythonda, fayl ustida biror amalni bajarish uchun avval uni ochishimiz kerak — buning uchun open() funksiyasidan foydalanamiz. Keling, bir misolni ko'rib chiqamiz:

Aytaylik, bizda file1.txt nomli faylimiz bor.

Pythonda faylni ochish

Pythonda faylni ochish

Bu faylni ochish uchun, open() funksiyasidan foydalanishimiz mumkin.

example.py
file1 = open("file1.txt")

Bu yerda biz file1 nomli fayl obyekti yaratdik. Endi, fayllar bilan ishlash uchun shu obyektdan foydalanishimiz mumkin.

Faylni ochishning turli rejimlari

Python fayllarni turli rejimlarda (o'qish, yozish, qo'shish va h.k.) ochish imkonini beradi, shularga asoslanib biz turli fayl amallarini bajarishimiz mumkin. Masalan,

example.py
file1 = open("file1.txt")

Bu yerda biz faylni o'qish rejimida (faqat kontentni o'qiy olamiz, o'zgartira olmaymiz) ochyapmiz.

Eslatma: Standart holatda, Python fayllari o'qish rejimida ochiladi. Shuning uchun open("file1.txt", "r") kodi open("file1.txt") bilan barobardir.

Pythonda faylni ochishning turli rejimlari

RejimTavsif
rFaylni o'qish rejimida ochadi (standart)
wFaylni yozish rejimida ochadi
xFaylni eksklyuziv yaratish uchun ochadi
aFaylni qo'shish (appending) rejimida ochadi (kontentni fayl oxiriga qo'shadi)
tFaylni matn (text) rejimida ochadi (standart)
bFaylni ikkilik (binary) rejimida ochadi
+Faylni ham o'qish, ham yozish rejimida ochadi

Mana faylni turli rejimlarda ochishga bir nechta misollar,

example.py
# faylni standart rejimda ochish (o'qish va matn)
file1 = open("test.txt")      # open("test.txt", "rt") bilan barobar

# faylni yozish va matn rejimida ochish 
file1 = open("test.txt",'w')  

# faylni o'qish, yozish va ikkilik rejimida ochish
file1 = open("img.bmp",'+b') 

Faylni to'liq yo'li orqali ochish

Faylni uning to'liq yo'li (full path) orqali ham ochishimiz mumkin.

example.py
file_path = "/home/user/documents/file1.txt"
file1 = open(file_path)

Bu misolda, /home/user/documents/file1.txt — /home/user/documents/ papkasida joylashgan file1.txt nomli faylning to'liq yo'li.

Eslatma: Papkalar (directories) haqida ko'proq bilish uchun, iltimos Python Directory sahifasiga tashrif buyuring.

Pythonda fayllarni o'qish

Faylni ochganimizdan so'ng, uning kontentini o'qish uchun read() metodidan foydalanamiz. Masalan,

Aytaylik, bizda file1.txt nomli faylimiz bor.

Pythonda faylni o'qish

Pythonda faylni o'qish

Endi, faylning kontentini o'qiymiz.

example.py
# faylni o'qish rejimida ochish
file1 = open("file1.txt")

# fayl kontentini o'qish
read_content = file1.read()
print(read_content)

Natija

kod
This is a test file.
Hello from the test file.

Yuqoridagi misolda, file1.read() kodi faylning kontentini o'qiydi va uni read_content o'zgaruvchisida saqlaydi.

Eslatma: Agar file1.read() kodi qanday ishlashi haqida aniqlik kerak bo'lsa, iltimos Working of Python Objects sahifasiga tashrif buyuring.

Pythonda fayllarga yozish

Python faylga yozish uchun, uni w parametri yordamida yozish rejimida ochishimiz kerak.

Aytaylik, bizda file2.txt nomli faylimiz bor. Keling, shu faylga yozamiz.

example.py
# file2.txt faylini yozish rejimida ochish
file2 = open('file2.txt', 'w')

# file2.txt fayliga kontent yozish
file2.write('Programming is Fun.\n')
file2.write('Programiz for beginners\n')

Yuqoridagi kodni ishga tushirganimizda, fayl ichida belgilangan kontentni ko'ramiz.

Pythonda faylga yozish

Pythonda faylga yozish

Faylga yozayotganda ehtiyot bo'ling

Agar allaqachon kontentga ega faylga yozish amalini bajarishga urinsak, yangi kontent mavjud kontentning o'rnini bosadi. Masalan,

Aytaylik, bizda file2.txt nomli faylimiz bor.

Pythonda faylga yozish

Pythonda faylga yozish

Endi shu faylga yozamiz.

example.py
# file2.txt faylini yozish rejimida ochish
file2 = open('file2.txt', 'w')

# file2.txt fayliga yangi kontent yozish
file2.write('Learning Python is interesting.\n')
file2.write('File operations are useful.\n')

Yuqoridagi kodni ishga tushirganimizda, yangi kontent file2.txt faylidagi mavjud kontentning o'rnini bosadi.

Mavjud Python fayliga yozish

Mavjud Python fayliga yozish

Eslatma: Agar mavjud bo'lmagan faylni ochishga urinsak, yangi fayl yaratiladi va write() metodi kontentni faylga qo'shadi.

Pythonda fayllarni yopish

Fayl ustida amallarni bajarib bo'lganimizdan so'ng, faylni to'g'ri yopishimiz kerak. Pythonda faylni yopish uchun close() funksiyasidan foydalanamiz. Masalan,

example.py
# faylni ochish
file1 = open("file1.txt", "r")

# faylni o'qish
read_content = file1.read()
print(read_content)

# faylni yopish
file1.close()

Natija

kod
This is a test file.
Hello from the test file.

Eslatma: Faylni yopish fayl bilan bog'liq resurslarni bo'shatadi. Shuning uchun faylni har doim yopish yaxshi dasturlash amaliyoti hisoblanadi.

Python faylini with...open yordamida ochish

Pythonda with...open yordamida faylni ochishning yaxshiroq usuli bor. Masalan,

example.py
with open("file1.txt", "r") as file1:
    read_content = file1.read()
    print(read_content)

Natija

kod
This is a test file.
Hello from the test file.

Bu yerda, with...open faylni avtomatik yopadi, shuning uchun bizga close() funksiyasini ishlatish shart emas.

Eslatma: Faylni yopish haqida qayg'urishimiz shart bo'lmagani uchun, with...open sintaksisidan foydalanishni odat qiling.

Fayllarda xatoliklarni boshqarish

Agar fayl bilan ishlayotganda xatolik yuz bersa, kod faylni yopmasdan chiqib ketadi. Shuning uchun, try...finally blokidan foydalanish yaxshi amaliyot hisoblanadi.

Keling, bir misolni ko'ramiz.

example.py
try:
    file1 = open("file1.txt", "r")
    read_content = file1.read()
    print(read_content)

finally:
    # faylni yopish
    file1.close()

Natija

kod
This is a test file.
Hello from the test file.

Bu yerda, finally bloki har doim bajariladi, shuning uchun biz close() funksiyasini shu blok ichida saqladik. Bu faylning har doim yopilishini kafolatlaydi.

Xatoliklar (exceptions) haqida ko'proq bilish uchun, Python Exception Handling sahifasiga tashrif buyuring.

Eslatma: Fayllar bilan ishlayotganda with...open sintaksisidan foydalanishni odat qiling, shunda faylni yopish haqida qayg'urishingiz shart bo'lmaydi.

Keng tarqalgan ba'zi fayl metodlari

Fayl obyekti bilan turli metodlar mavjud. Ulardan ba'zilari yuqoridagi misollarda ishlatilgan.

Mana matn rejimidagi metodlarning to'liq ro'yxati va ularning qisqa tavsifi:

MetodTavsif
close()Ochilgan faylni yopadi
read(n)Fayl kontentini o'qiydi
seek(offset,from=SEEK_SET)Fayl pozitsiyasini fromga (boshlanish, joriy, oxiri) nisbatan offset baytga o'zgartiradi
tell()Fayl obyektining joriy pozitsiyasini ifodalovchi integerni qaytaradi
write(s)Faylga satr yozadi
writelines(lines)Faylga qatorlar ro'yxatini yozadi
QBilimingizni sinab ko'ring
1 / 3

1. Standart holatda, Pythonda fayl qaysi rejimda ochiladi?