open va with, rejimlar (r, w, a, x), write, read, readline, readlines, FileNotFoundError
9-sinfAdvanced Back-end va DevOps6-hafta · 18-darsFaylni ochish
read va readlines
Fayl topilmasa
Aniq istisnoni ushlash uchun qaysi yozuv to'g'ri?
Faylni ochish
with open("kundalik.txt", "w", encoding="utf-8") as f:
f.write("Birinchi qator\n")
f.write("Ikkinchi qator\n")
with open("kundalik.txt", "a", encoding="utf-8") as f:
f.write("Uchinchi qator\n")
w rejimi mavjud faylni darhol tozalaydi. Eski ma'lumot kerak bo'lsa, a (qo'shib yozish) ishlating. \n — yangi qator belgisi.Mavjud faylni w rejimida ochsak nima bo'ladi?
w — eskisini o'chiradi.read va readlines
with open("kundalik.txt", encoding="utf-8") as f:
hammasi = f.read()
print(hammasi)
with open("kundalik.txt", encoding="utf-8") as f:
for qator in f:
print(qator.strip())
with open("kundalik.txt", encoding="utf-8") as f:
qatorlar = f.readlines()
print(len(qatorlar))
for qator in f katta fayllar uchun ham xavfsiz: butun fayl xotiraga birdaniga yuklanmaydi.Faylni qator-qator o'qishning eng qulay usuli?
for sikli.Fayl topilmasa
def yozuv_qosh(matn, nom="kundalik.txt"):
with open(nom, "a", encoding="utf-8") as f:
f.write(matn + "\n")
def yozuvlar(nom="kundalik.txt"):
try:
with open(nom, encoding="utf-8") as f:
return f.read().splitlines()
except FileNotFoundError:
return []
yozuv_qosh("Python o'rgandim", "yangi.txt")
print(yozuvlar("yangi.txt")) # ["Python o'rgandim"]
print(yozuvlar("yoq.txt")) # []
PermissionError, OSError. Kerak bo'lsa ularni ham ushlang.r rejimida fayl topilmasa qaysi istisno chiqadi?
FileNotFoundError.Eski ma'lumotni yo'qotmaslik uchun a.
Faylni ochish funksiyasi
Faylni avtomatik yopadigan blok
r, w, a, x: ochish maqsadi
Matn kodlanishi (utf-8)
w yoki a rejimi.
read yoki for.
FileNotFoundError.
| Rejim | Ma'nosi | Eslatma |
|---|---|---|
r | O'qish | Fayl yo'q bo'lsa xato |
w | Yozish | Eskisini o'chiradi |
a | Qo'shib yozish | Oxiridan qo'shadi |
x | Yangi yaratish | Bor bo'lsa xato |
b | Binar rejim | Rasm, PDF, audio |
Pastga bosing: rejimlar
yozuv_qosh() funksiyasini yozing va 3 ta yozuv qo'shing.yozuvlar() funksiyasi bilan yozuvlarni o'qing; fayl yo'q bo'lsa bo'sh ro'yxat qaytsin.
with open("log.txt", "w") as f:
f.write("yangi\n") # eski yozuvlar o'chadi
with open("log.txt", "a") as f:
f.write("yangi\n") # eskisi saqlanadi
Doim with va encoding yozing.
salom.txt fayliga ikki qator yozing.salom.txt ni o'qib, ekranga chiqaring.salom.txt oxiriga yangi qator qo'shing (eskisi o'chmasin).yoq.txt ni o'qing; fayl yo'q bo'lsa «Fayl topilmadi» chiqsin.Fayl avtomatik yopiladi.
r, w (o'chiradi!), a, x.
FileNotFoundError ni ushlang.
Uyga vazifa: «Kundalik» dasturi: faylga yozish va o'qish.
Klasslar va obyektlar
7-hafta · 19-dars