Kirish.

Dasturlash bo'yicha xalqaro olimpiadalarda yoki masalalar ishlanadigan saytlarda tuzgan dasturimiz qiymatni input.txt faylidan oladi va natijani output.txt fayliga saqlaydi. Faylni nato'g'ri saqlasa ham dasturimizni xato deb chiqaradi. Ushbu maqola orqali python dasturlash tilida fayl va papkalar bilan ishlashni, ma'lumotlarni fayl ko'rinishida saqlashni o'rganamiz.

Boshqa dasturlash tillari kabi python ham ma'lumotlarni fayllarga saqlay oladi. Python har xil turdagi fayllar bilan ishlaydi. Ular asosan ikkiga: matn fayllari va binar fayllariga bo'linadi. Matn fayllarida js, html, css, txt va hk o'xshash ixtiyoriy matnlar saqlanadi. Binar fayllarida esa rasm, audio, video va boshqa ma'lumotlar saqlanadi. Matn fayllari bilan ishlashni ko'rib chiqamiz.

Fayllar bilan ishlash uchun oldin faylni open() metodi yordamida ochib olishimiz kerak. 

f=open(matn.txt, rejim)

Bu yerda: f-fayl o'zgaruvchisi, matn.txt-biz foydalanadigan fayl, rejim-faylni ochish rejimi. Quyidagi jadvalda rejimlar berilgan.

RejimMa'nosi
'r'O‘qish uchun ochish (boshqa holat ko‘rsatilmasa, odatiy hol hisoblanadi).
'w'Yozish uchun ochish, faylning tarkibi o‘chiriladi, agar bunday fayl mavjud bo‘lmasa, yangisi yaratiladi.
'x'Yozish uchun ochish, agar bunday fayl mavjud bo‘lmasa xatolik bo'ladi.
'a'Qo‘shimcha yozish uchun ochish. Qo‘shilayotgan ma’lumot faylning yakunidan qo‘shiladi.
'b'Ikkilik rejimda ochish.
't'Matnli rejimda ochish(boshqa holat ko‘rsatilmasa, odatiy hol hisoblanadi)
'+'O‘qish va yozish uchun ochish.

Rejimlarni birlashtirib foydalanishimiz mumkin. Masalan, 'rb' ikkilikda o'qish uchun ochadi.

Bundan tashqari fayldan o'qish uchun read(), readline(),readlines(), faylga yozish uchun write(),  writelines(),  metodlaridan foydalanamiz. Faylni ochib foydalanib bo'lgandan so'ng uni close() metodi yordamida yopishimiz kerak.

Faylni o'qish.

1-masala. input.txt faylida tagma-tag ikkita son yozilgan bo'lib, ularning yig'indisini hisoblovchi dastur tuzing.

f = open('input.txt', 'r')#input faylini ochish
a=int(f.readline())
b=int(f.readline())#2 qatorni o'qish
c=a+b
print('Natija=', c)
f.close()#faylni yopish

2-masala. input.txt faylidagi barcha qatorlarni chop etuvchi dastur tuzing.

f=open('input.txt', 'r')
for s in f: #fayldagi barcha qatorlarni olish
	print(s)
f.close()

Faylga yozish.

3-masala. Kiritilgan matnni output.txt fayliga saqlovchi dastur tuzing.

f=open('output.txt','w')
s=input('Matn kiriting: ')
f.write(s)
f.close()

4-masala. 1 dan n gacha sonlarni tagma-tag output.txt fayliga saqlovchi dastur tuzing.

f=open('output.txt','w')
n=int(input('n sonini kiriting: '))
for i in range(1,n+1):
	f.write(str(i)+'\n')
f.close()

Fayl borligini tekshirish.

Fayl bor yoki yo'qligini aniqlash uchun os modulining exists funksiyasidan foydalanamiz. Masalan,

import os #os moduliga bog'lash
if os.path.exists('matn.txt'):
	print('Bunday fayl mavjud')
else:
	print('Bunday fayl mavjud emas')

Faylni o'chirish.

Faylni o'chirish uchun os modulining  remove funksiyasidan foydalanamiz. Masalan,

import os
if os.path.exists('matn.txt'):
	os.remove('matn.txt')
else:
	print('Bunday fayl mavjud emas')

Fayl nomini o'zgartirish.

Fayl nomini o'zgartirish uchun os modulining  rename funksiyasidan foydalanamiz. Masalan,

import os
if os.path.exists('matn.txt'):
	os.rename('matn.txt', 'salom.txt')
else:
	print('Bunday fayl mavjud emas')

Pythonda papka borligini tekshirish.

Papka mavjudligini os modulining isdir() funksiyasi yordamida tekshiramiz. Masalan,

import os
if os.path.isdir('kerak'):
	print('Bunday papka mavjud')
else:
	print('Bunday papka mavjud emas')

Pythonda papka yaratish.

Papka yaratish uchun os modulining mkdir() funksiyasidan foydalanamiz. Masalan,

import os
if os.path.isdir('kerak'):
	print('Bunday papka mavjud')
else:
	os.mkdir('kerak')

Papkani o'chirish.

Papkani o'chirish uchun os modulining rmdir() funksiyasidan foydalanamiz. Faqat bo'sh papkalarni o'chirishimiz mumkin. Masalan,

import os
if os.path.isdir('kerak'):
	os.rmdir('kerak')
else:
	print('Bunday papka mavjud emas')

Papka nomini o'zgartirish.

Papka nomini o'zgartirish uchun ham os modulining rename() funksiyasidan foydalanamiz. Masalan,

import os
if os.path.isdir('kerak'):
	os.rename('kerak', 'mening papkam')
else:
	print('Bunday papka mavjud emas')

Xulosa.

Pythonda yozgan dasturimizni saqlagan papkaning ichidagi fayl va papkalar bilan ishladik. Agar fayl va papkalar boshqa papka yoki diskda bo'lsa nomini to'liq va to'g'ri ko'rsatish kerak, Aks holda xatolik kelib chiqadi. Python dasturlash tilining fayl va papkalar bilan ishlaydigan juda ham ko'p funksiya va modullari mavjud. Hozir faqat asosiylarini ko'rib chiqdik. Boshqa funksiyalari bilan mustaqil tanishib chiqsangiz bo'ladi. Fayllar bilan ishlash pythonning muhim qismlaridan biri hisoblanadi. Web dasturlashda ham fayllar bilan ishlanadi.