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.
|
Do'stlaringiz bilan baham: |