Ⓜ️ Fayllar
Dasturda fayllar nima uchun kerak?
Ma'lumotlar ombori mavjud bo'lmagan kichkina dasturlarda ma'lumotlar operativ xotirada joy egallamasligi uchun ular fayllarda saqlanadi.
Python fayllarni yaratish, o'qish, yangilash va o'chirish uchun bir nechta funksiyalarga ega.
Pythonda fayllar bilan ishlashning asosiy funksiyasi open() funksiya hisoblanadi.
open() funksiya 8 ta argumentni https://docs.python.org/3/library/functions.html#open o'z ichiga oladi.Open funksiyasi bilan ishlashda asosan fayl nomi va rejim argumentlaridan foydalanamiz.
Fayl ochishning har xil usullari (rejimi) mavjud:
r Faylni faqat o'qish uchun ochadi, agar fayl mavjud bo'lmasa FileNotFoundError nomli xatolikni qaytaradi
rb Faylni faqat ikkilik formatda o'qish uchun ochadi.
r+ O'qish va yozish uchun faylni ochadi.
rb+ Ikkilik formatda o'qish va yozish uchun faylni ochadi.
w Faylni faqat yozish uchun ochadi.
wb Faylni faqat ikkilik formatda yozish uchun ochadi.
w+ Faylni yozish va o'qish uchun ochadi.
wb+ Ikkilik formatda yozish va o'qish uchun faylni ochadi.
a Qo'shish uchun faylni ochadi, agar u mavjud bo'lmasa faylni yaratadi.
ab Ikkilik formatda qo'shish uchun faylni ochadi.
a+ Faylni qo'shish va o'qish uchun ochadi.
ab+ Ikkilik formatda qo'shish va o'qish uchun faylni ochadi.
x Faylni yaratadi, agar fayl mavjud bo'lsa xatolikni qaytaradi.
w+ Faylni yaratish va yozish uchun ochadi.
Bundan tashqari, fayl ikkilik yoki matn rejimi sifatida ishlashi kerakligini belgilashingiz mumkin.Fayl matn bilan ishlaganda 't' belgini ko'rsatish shart emas.
"t"- Text - Matn rejimi
"b" - Binary - Ikkilik rejim (matn turidan boshqa formatlar)
Pythonda fayl bilan ishlash quyidagi tartibda amalga oshiriladi:
1. open() funksiyasi yordamida fayl ochiladi;
2. read() metodi yordamida fayl o'qish yoki write() metodi yordamida faylga
yozish amalga oshiriladi;
3. close() metodi faylni yopadi.
file = open("pythonuz.txt", 'r')
file.read()
file.close()
Har doim fayllarni yopish kerak, ba'zi hollarda buferlash tufayli faylga kiritilgan o'zgarishlar faylni yopmaguningizcha ko'rinmasligi mumkin.
Fayllar bilan ishlashda blokda istisnolar yuzaga kelsa fayl avtomatik tarzda yopilishi uchun with operatoridan foydalanish tavsiya etiladi va bu operatordan foydalanganda close() metodi yozilmaydi:
with open("pythonuz.txt", "r") as file:
file.read()
'r' birlamchi rejim hisoblanadi va faylnmi o'qishda hech qanday harfni ko'rsatish shart emas:
with open("pythonuz.txt") as file:
file.read()
w, w+, wb, wb+ rejimlaridan foydalanganda ehtiyot bo'lish kerak , chunki fayl allaqachon mavjud bo'lsa, faylga oldin yozilgan barcha ma'lumotlar o'chiriladi.
with open("pythonuz.txt", 'w+') as yozish:
yozish.write("1-qator\n2-qator\n3-qator")
yozish.seek(0) # faylning boshiga o'tish
print("read(12): ", yozish.read(12)) # faylning 12-belgisigacha bo'lgan satrni o'qiydi
read(12): 1-qator
2-qa
yozish.seek(0)
print("read(): ", yozish.read()) # fayldagi barcha ma'lumotni o'qiydi
read(): 1 - qator
2 - qator
3 - qator
yozish.seek(0)
print("readline(): ", yozish.readline()) # 1-qatorni o'qish
readline(): 1 - qator
yozish.seek(0)
print("readline(5): ", yozish.readline(5)) # 1-qatordagi 5-belgigacha o'qish
readline(5): 1 - qat
yozish.seek(0)
print(yozish.readlines()) # barcha qatorlarni ro'yxatlash
['1-qator\n', '2-qator\n', '3-qator']
print("readable(): ", yozish.readable()) # O'qish mumkin bo'lsa True aksi bo'lsa False qaytaradi
readable(): True
print("writable(): ", yozish.writable()) # Yozish mumkin bo'lsa True aksi bo'lsa False qaytaradi
writable(): True
@pythonuz
Dasturda fayllar nima uchun kerak?
Ma'lumotlar ombori mavjud bo'lmagan kichkina dasturlarda ma'lumotlar operativ xotirada joy egallamasligi uchun ular fayllarda saqlanadi.
Python fayllarni yaratish, o'qish, yangilash va o'chirish uchun bir nechta funksiyalarga ega.
Pythonda fayllar bilan ishlashning asosiy funksiyasi open() funksiya hisoblanadi.
open() funksiya 8 ta argumentni https://docs.python.org/3/library/functions.html#open o'z ichiga oladi.Open funksiyasi bilan ishlashda asosan fayl nomi va rejim argumentlaridan foydalanamiz.
Fayl ochishning har xil usullari (rejimi) mavjud:
r Faylni faqat o'qish uchun ochadi, agar fayl mavjud bo'lmasa FileNotFoundError nomli xatolikni qaytaradi
rb Faylni faqat ikkilik formatda o'qish uchun ochadi.
r+ O'qish va yozish uchun faylni ochadi.
rb+ Ikkilik formatda o'qish va yozish uchun faylni ochadi.
w Faylni faqat yozish uchun ochadi.
wb Faylni faqat ikkilik formatda yozish uchun ochadi.
w+ Faylni yozish va o'qish uchun ochadi.
wb+ Ikkilik formatda yozish va o'qish uchun faylni ochadi.
a Qo'shish uchun faylni ochadi, agar u mavjud bo'lmasa faylni yaratadi.
ab Ikkilik formatda qo'shish uchun faylni ochadi.
a+ Faylni qo'shish va o'qish uchun ochadi.
ab+ Ikkilik formatda qo'shish va o'qish uchun faylni ochadi.
x Faylni yaratadi, agar fayl mavjud bo'lsa xatolikni qaytaradi.
w+ Faylni yaratish va yozish uchun ochadi.
Bundan tashqari, fayl ikkilik yoki matn rejimi sifatida ishlashi kerakligini belgilashingiz mumkin.Fayl matn bilan ishlaganda 't' belgini ko'rsatish shart emas.
"t"- Text - Matn rejimi
"b" - Binary - Ikkilik rejim (matn turidan boshqa formatlar)
Pythonda fayl bilan ishlash quyidagi tartibda amalga oshiriladi:
1. open() funksiyasi yordamida fayl ochiladi;
2. read() metodi yordamida fayl o'qish yoki write() metodi yordamida faylga
yozish amalga oshiriladi;
3. close() metodi faylni yopadi.
file = open("pythonuz.txt", 'r')
file.read()
file.close()
Har doim fayllarni yopish kerak, ba'zi hollarda buferlash tufayli faylga kiritilgan o'zgarishlar faylni yopmaguningizcha ko'rinmasligi mumkin.
Fayllar bilan ishlashda blokda istisnolar yuzaga kelsa fayl avtomatik tarzda yopilishi uchun with operatoridan foydalanish tavsiya etiladi va bu operatordan foydalanganda close() metodi yozilmaydi:
with open("pythonuz.txt", "r") as file:
file.read()
'r' birlamchi rejim hisoblanadi va faylnmi o'qishda hech qanday harfni ko'rsatish shart emas:
with open("pythonuz.txt") as file:
file.read()
w, w+, wb, wb+ rejimlaridan foydalanganda ehtiyot bo'lish kerak , chunki fayl allaqachon mavjud bo'lsa, faylga oldin yozilgan barcha ma'lumotlar o'chiriladi.
with open("pythonuz.txt", 'w+') as yozish:
yozish.write("1-qator\n2-qator\n3-qator")
yozish.seek(0) # faylning boshiga o'tish
print("read(12): ", yozish.read(12)) # faylning 12-belgisigacha bo'lgan satrni o'qiydi
read(12): 1-qator
2-qa
yozish.seek(0)
print("read(): ", yozish.read()) # fayldagi barcha ma'lumotni o'qiydi
read(): 1 - qator
2 - qator
3 - qator
yozish.seek(0)
print("readline(): ", yozish.readline()) # 1-qatorni o'qish
readline(): 1 - qator
yozish.seek(0)
print("readline(5): ", yozish.readline(5)) # 1-qatordagi 5-belgigacha o'qish
readline(5): 1 - qat
yozish.seek(0)
print(yozish.readlines()) # barcha qatorlarni ro'yxatlash
['1-qator\n', '2-qator\n', '3-qator']
print("readable(): ", yozish.readable()) # O'qish mumkin bo'lsa True aksi bo'lsa False qaytaradi
readable(): True
print("writable(): ", yozish.writable()) # Yozish mumkin bo'lsa True aksi bo'lsa False qaytaradi
writable(): True
@pythonuz