|
O‘zbekiston respublikasi oliy ta’lim, fan va innovatsiyalar vazirligi navoiy davlat pedagogika instituti
|
bet | 163/178 | Sana | 13.05.2024 | Hajmi | 14,73 Mb. | | #230019 |
Bog'liq Darslik 01.05.2023Natija: TypeError: write() argument must be str, not int
Xatoning oldini olish uchun sonlarni avval str() funksiyasi yordamida matnga keltirib olamiz.
faylnomi = 'new_file.txt'
ism = 'Olimjon Hasanov'
tyil = 2004
with open(faylnomi,'w') as fayl:
fayl.write(ism)
fayl.write(str(tyil))
Fayllar matn formatida yoziladi, va biz ularni istalgan matn muharriri yordamida ochib ko‘rishimiz mumkin.
4.6.1-rasm
Faylda saqlangan ma'lumotlar Afsuski, faylga bir nechta ma'lumot yozganimizda, ma'lumotlar alohida qatordan emas, bir qatorda bir-biriga qo‘shib qo‘shib yoziladi. Buning oldini olishimiz uchun matn so‘ngida \n belgisini qo‘shib ketishimiz kerak bo‘ladi:
faylnomi = 'new_file.txt'
ism = 'Olimjon Hasanov'
tyil = 2004
with open(faylnomi,'w') as fayl:
fayl.write(ism+'\n')
fayl.write(str(tyil)+'\n')
4.6..2-rasm
Fayldagi ma'lumotlar yangi qatordan saqlandi
Faylga ma'lumot qo‘shish
Agar mavjud faylga ma'lumot qo‘shish talab qilinsa, open() funksiyasiga murojat qilishda 'a' (append) argumentidan foydalanamiz. Bunda yangi qo‘shilgan ma'lumotlar faylning oxiriga qo‘shiladi.
with open(faylnomi,'a') as fayl:
fayl.write('Alijon Valiyev\n')
fayl.write('2000')
4.6.3-rasm
Faylga yangi ma'lumotlar qo‘shildi. Agar biz ochayotgan fayl mavjud bo‘lmasa, Python yangi fayl yaratadi.
O‘zgaruvchilarni faylda saqlash
Yuqorida biz ma'lumotlarni matn ko‘rinishida saqlashni ko‘rdik. Agar dastur davomida turli o‘zgaruvchilarni faylda saqlash talab qilinsa pickle modulidan foydalanamiz. Pickle ma'lumotlarni biz qanday ko‘rinishda bersak, shunday ko‘rinishda faylga yozadi. Yuqoridagi usuldan farqli ravishda, pickle yordamida yozilgan fayllarning tarkibini Pythondan tashqarida ko‘rib bo‘lmaydi.
Pickle faylga yozish
Pickle dan foydalanish uchun biz avval bu modilni import qilamiz. Faylno ochishda esa, open() funksiyasiga ikkinchi argument sifatida 'wb' (write binary) beramiz, ya'ni ikkilik sanoq tizimida yozishni ko‘rsatamiz. Faylga yozish uchun esa pickle.dump() metodidan foydalanamiz:
import pickle
talaba1 = {'ism':'hasan', 'familiya':'husanov', 'tyil':2003, 'kurs': 2}
talaba2 = {'ism':'alijon', 'familiya':'valiyev', 'tyil':2004, 'kurs': 1}
with open('info‘,'wb') as file:
pickle.dump(talaba1,file)
pickle.dump(talaba2,file)
E'tibor bering, yuqorida fayl nomini yozishda uning turini ko‘rsatmadik, sababi, avval aytganimizdek bu fayllar Pythondan tashqarida ochilmaydi va biz buning oldini olishimiz kerak. Aslida fayl nomiga .txt qo‘shimchasini ham qo‘shishimiz mumkin, bu bilan dastur xato ishlamaydi, lekin bu bizni kelajakda chalg'itishi mumkin. Istasangiz faylga .dat (data so‘zidan olingan) qo‘shimchasini qo‘shib qo‘yishingiz mumkin (info.dat).
|
| |