Shamiyeva Dildoraning dasturlash tillaridan
amaliy topshirig`I 3
Fayllar
yaratish, faylni ochish , Fayldan
ma’lumotlarni o`qish, Fayllarga
ma’lumotlarni yozish,
fayldagi
ma’lumotlarni o’zgartirish. Fayllarni
o’chirish.
Ushbu bo'limda katta hajmdagi ma'lumotlarni fayldan yuklab olish va dastur
yakunida kerakli ma'lumotlarni va dastur natijasini faylga
saqlashni
o'rganamiz. Fayllar bilan ishlash dastur foydalanuvchilariga ham dasturga
o'zlari istagan ma'lumotlarni yuklash imkoniyatini beradi.
FAYLDAN O'QISH
Kompyuterimizda aksar ma'lumotlar fayl ko'rinishida saqlanadi. Bu xoh matn
bo'lsin, xoh jadval, xoh rasm, xoh video. Fayllarda turli ma'lumotlar saqlanishi
mumkin, ob-havo ma'lumotlari, yillik hisobotlar, mijozlarning telefon raqamlari,
talabalarning baholari va hokazo.
Ko'pgina holatlarda dastur davomida katta ma'lumotlarni aynan fayllardan
o'qib olish talab qilinadi. Ayniqsa, tahliliy dasturlarda fayl ko'rinishida
saqlangan, katta hajmdagi jadvallar bilan ishlash tabiiy. Lekin
fayllar bilan
ishlash boshqa holatlarda ham ko'p asqotadi, misol uchun oddiy matnni html
ko'rinishga o'tkazishni avtomatlashtiruvchi dastur yozishda.
Fayllar bilan ishlashning birinchi qadami bu fayldagi ma'lumotlarni
kompyuter
xotirasiga ko'chirish. Buning bir necha usuli bor, quyida ular bilan tanishamiz.
FAYLNI TO'LIQLIGACHA O'QISH
Boshlanishiga bizga fayl kerak. Keling, yangi
pi.txt
faylini yaratamiz, va ichiga
quyidagi matnni joylaymiz:
Copy
3.1415926535
8979323846
2643383279
36B
pi.txt
Uch qatordan iborat faylimiz
𝜋
π
sonining qiymatini saqlaydi (30 xona
aniqlik
bilan).
Fayli to'lqi o'qish uchun quyidagi kodni yozamiz:
Copy
with open('pi.txt') as fayl:
pi = fayl.read()
Kodni tahlil qilamiz:
•
Birinchi qatorda
open()
funksiyasi yordamida faylni ochayapmiz. Bunda
funksiyaga argument sifatida fayl nomini berayapmiz. Bu yerda biz
ochayotgan fayl va dasturimiz bir papkada bo'lishi muhim.
•
open()
funksiyasi faylni obyekt sifatida qaytaradi,
as
operatori yordamida
esa biz obyektimizga
fayl
deb nom berayapmiz.
•
Ikkinchi qatorda
.read()
metodi yordamida
fayl
obyektining tarkibidan
bizga
kerakli matnni olib, yangi,
PI
o'zgaruvchisiga yuklayabmiz.
•
with
operatorining vazifasi biz fayl bilan ishlab bo'lganimizdan so'ng
faylni yopish. Yuqoridagi misolda, 2-qatordan so'ng Python zudlik bilan
faylni yopadi.
Yuqorida ko'rgan usulimiz fayl bilan ishlashning eng xavfsiz usuli. Aslida biz
fayllarni to'g'ridan-to'g'ri
fayl=open('pi.txt')
yordamida ochishimiz, fayl bilan ishlab
bo'lgandan so'ng esa
fayl.close()
komandasi yordamida faylni yopishimiz ham
mumkin edi:
Copy
fayl = open('pi.txt')
PI = fayl.read()
print(pi)
fayl.close()
Lekin, bu usul xavfli hisoblanadi va tavsiya qilinmaydi. Gap shundaki,
open()
funksiyasi yordamida faylni ochganimizdan keyin, toki
close()
metodini
chaqirgunga qadar faylimiz ochiq holatda turadi. Agar, faylni vaqtida
yopmasak, yoki fayl yopilmasidan avval dasturimiz to'xtab qolsa
fayl tarkibiga
ziyon yetishi, ma'lumotlar yo'qotilishi mumkin. Misol uchun, boshqa
dasturlarda ham (masalan Microsoft Word) faylni yopmasdan oldin
kompyuteringiz o'chib qolsa, yoki dastur behosdan yopilib ketsa faylingizga
ziyon yetkani kabi.
Shuning uchun
open()
funksiyasiga with orqali murojat qilganimizda, faylimiz
with
blokining
oxirigacha ochiq turadi, va
with
tugashi bilan, fayl ham yopiladi.
Demak fayl ustidagi amallarni biz
with
bloki ichida bajarib olishimiz kerak.
Keling endi
pi
ning qiymatini konsilga chiqaramiz:
Copy
>>> print(pi)
3.1415926535
8979323846
2643383279
Matn faylda qanday saqlangan bo'lsa, huddi shu ko'rinishda konsolga chiqdi.
Saqlangan ma'lumot son bo'lsada, fayldan o'qiganimizda qaytgan qiymat
matn ko'rinishida bo'ladi. Matnni songa o'tkazish uchun, unga biroz ishlov
beramiz:
Copy
pi = pi.rstrip() # qator ohiridagi bo'shliqlarni olib tashlaymiz
pi = pi.replace('\n','') # qator tashlash belgisini almashtiramiz
pi = float(pi) # matnni float (o'nlik) songa o'tkazamiz
print(pi)
Natija:
3.141592653589793