Dinamik tiplashtirilgan



Download 2,16 Mb.
bet33/56
Sana09.03.2022
Hajmi2,16 Mb.
#487710
1   ...   29   30   31   32   33   34   35   36   ...   56
Bog'liq
Ataxonov maruza

Fayllarni yopish
Ochilgan fayllarni albatta yopish zarur. Odatda bu amal close() metodi yordamida bajariladi. Agar ob`ekt boshqa faylga o`zlashtiriladigan, fayli to`g’ridan-to`g’ri yopiladi. Fayllarni yopishda quyidagi usullardan foydalanish mumkin:
1-usul. Ochilgan faylni close() yordamida yopish.
f = open('matn.txt','r')
# fayl ustida amallar bajarish
f.close()
Fayl yopilganidan keyin, uni qayta ochilmaguncha foydalanib bo`lmaydi.
2-usul. Agar fayl ochilganidan keyin, undagi ma`lumotlar usida amallar bajarishda istisnoli vaziyatlar yuzaga kelib qolsa, fayl to`g’ridan-to`g’ri yopilishini tashkil qilish uchun try/finally blogidan foydalaniladi. Dastur bu ko`rsatmasiz noto`g’ri ishlaydi, ya`ni to`xtab qoladi. Bu istisnoni quyidagicha qayta ishlash mumkin:
f = open('matn.txt','r')
try:
# fayl ustida amallar bajarish
finally:
f.close()
Faylni try ko`rsatmasidan avval ochish lozim, chunki agar open metodining o`zi xatolikni yuzaga keltirsa, u holda fayl yopilmaguncha qayta ochib bo`lmaydi. Bu metod agar fayl ustida amallar bajarishda istisnoli vaziyatlar yuzaga kelib qolsa, dastur o`z ishini to`xtatmasidan oldin faylning yopilishini kafolatlaydi.
3-usul. Boshlang’ich amallar inkapsul’yatsiyasi yordamida istisnoli vaziyatlarni qayta ishlash hamda yopish va tozalash masalalarini hal qilish jarayonini soddalashtirish uchun with ko`rsatmasidan foydalanish. Bu holda close() metodi shart emas, chunki with ning o`zi faylni to`g’ridan-to`g’ri yopadi. Bu holatni quyidagicha amalga oshirish mumkin:
with open('matn.txt') as f:
# fayl ustida amallar bajarish
Fayllarga yozish va o`qish
Python tilida fayldagi ma`lumotlarni o`qish yoki unga ma`lumotlarni yozish uchun belgilangan rejimlardan foydalanish lozim.
Fayllarni o`qish (r) rejimida ochilganidan so`ng, ulardagi ma`lumotlarni o`qish uchun read() funktsiyasi xizmat qiladi. Uni umumiy xolda quyidagicha yozish mumkin:
file.read(size),
bu yerda file – fayl ob`ekti, size – o`qish talab qilinadigan belgilar soni. Agar bu parametr yozilmagan bo`lsa, u xolda fayl to`laligicha o`qiladi. Quyidagi namunaga e`tibor bering:

Bu namunada interpretator matn.txt faylini o`qish uchun ochganidan keyin, uning dastlabki 10 belgisini o`qidi va ekranga uzatdi. f.read(9) ko`rsatmasi esa navbatdagi 9 ta belgini o`qiydi.

Fayldagi matnni satrlari bo`yicha o`qishni tashkil qilish uchun readline() funktsiyasidan foydalanish mumkin. Bu funktsiya yordamida ihtiyoriy satrni ihtiyoriy vaqt mobaynida o`qish uchun imkon yaratiladi.
Quyidagi namunani taqdim etishdan avval Python papkasida test.txt faylini yaratiladi va unga quyidagi matnni yozuladi:
Bu 1-satr
Bu 2-satr
Bu 3-satr
Endi read() va readline() funksiyalarini qanday ishlashini tekshirish mumkin.

E`tibor bering, readline() funktsiyasi kursor turgan pozitsiyadan boshlab, joriy satrni to`la yoki ko`rsatilgan miqdordagi belgilarni o`qiydi.
YOzish uchun ochilgan faylga ma`lumotlarni yozish uchun write() funktsiyasidan foydalaniladi. Agar bu rejimda ochilayotgan fayl mavjud bo`lmasa, u holda bu fayl yangidan yaratiladi. Funktsiyaning umumiy ko`rinishi quyidagicha:
file.write(string)
Masalan, faraz qilaylik, yangi.txt fayli joriy papkada mavjud bo`lmasin. U fayl yozish maqsadida ochilgan vaqtida yangidan hosil qilinadi:
>>> f = open('yangi.txt','w') # fayl yozish rejimida ochilmoqda
>>> f.write('Hello \n World') # Hello World matni faylga yozildi
>>> f.close() # fayl yopildi
SHundan so`ng, Windows muhitida joriy papkaga o`tib, yangi.txt faylining hosil bo`lganligiga hamda uni Bloknot dasturi yordamida ochilsa, unda “Hello World” matnining yozilganligiga ishonch hosil qilish mumkin:

Endi shu faylni yangi ma`lumot qo`shish uchun ochiladi.
>>> f = open('yangi.txt','a')
>>> f.write('\n I love you')
>>> f.close()
Joriy papkaga o`tib, yangi.txt faylini bloknot yordamida quyidagi matnni ko`rish mumkin:

Dasturchilar uchun fayllar bilan ishlaganda ko`pincha kursorning joriy holati (o`rni) muhim sanaladi. Bu muammoni Python tilida tell() funktsiyasi yordamida hal qilinadi. SHuningdek, kursorning joriy holatini seek() metodi orqali o`zgartirish mumkin. Quyidagi namunaga e`tibor bering:

Python tili fayllar bilan ishlash uchun quyidagi metodlarni taklif etadi:

file.close()

ochiq faylni yopish

file.fileno()

faylning butun sonli deskriptorini qaytaradi.

file.flush()

ichki buferni tozalaydi

file.isatty()

agar fayl terminalga bog’langan bo`lsa – True

file.next()

faylning navbatdagi satrini qaytaradi.

file.read(n)

faylning dastlabki n ta belgisini o`qiydi.

file.readline()

faytning bitta satrini o`qiydi.

file.readlines()

fayldagi barcha satrlarni o`qiydi

file.seek(offset[,whene])

faylning joriy pozitsiyasini o`rnatadi.

file.seekable()

agar fayl tasodifiy tushishga ruhsat bersa - True,

file.tell()

faylning joriy pozitsiyasini qaytaradi.

file.truncate(n)

fayl o`lchamini pasaytiradi. Agar n ko`rsatilgan bo`lsa, faylning hajmi n baytgacha, ko`rsatilmagan bo`lsa joriy pozitsiyagacha kamaytiriladi,

file.write(str)

faylga str satrini qo`shadi.

file.writelines(sequence)

faylga satrlar ketma-ketligini qo`shadi.




Download 2,16 Mb.

Do'stlaringiz bilan baham:
1   ...   29   30   31   32   33   34   35   36   ...   56




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish