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: |