Dinamik tiplashtirilgan



Download 2,94 Mb.
bet33/77
Sana06.10.2022
Hajmi2,94 Mb.
#851613
1   ...   29   30   31   32   33   34   35   36   ...   77
Bog'liq
Dinamik

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,94 Mb.

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




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