ProgramlamaPython

Python’da Dosya İşlemleri

Herkese merhaba arkadaşlar bu yazımızda python yazılım dilinde dosya işlemleri yapacağız. İsterseniz konuya başlamadan önce dosya işlemlerinin ne olduğunu ne işe yaradığını konuşalım.

Pythonda dosya işlemleri  üç alanda yapılır ;

  1. Yeni bir dosya açıp içerisine yazma.
  2. Var olan bir dosyanın içerisine veri ekleme
  3. Dosyanın içerisindeki bilgileri okuma

İsterseniz başlayalım

Yeni Bir Dosya Açıp İçerisine Yazma İşlemi (Write Modu)

Pythonda Write Modu şu şekilde çalışır;

Önce işlem sırasında kullanacağınız bir obje oluşturursunuz mesela dosya_aç , dos, dsy gibi veya kendi yazacağınız bir obje oluşturulur.

Sonra içerisine yazacağınız dosyayı uzantısıyla(txt,doc vb) beraber open komuduyla açarsınız

NOT: Eğer içerisine bilgi yazacağınız dosya yoksa write modu bu dosyayı sıfırdan açıp içerisine veriyi yazar. Ama eğer dosya var ise içerisindeki bütün bilgileri siler ve sizin yazdığınız veriyi yazar bu yüzden write modunda işlem yaparken dikkatli olmak gerekir .

Sonra ise ‘w’ yazarak dosyanın write modunda açılacağını söylersiniz.

En son olarak dosyanın içerisine yazdıracağınız bilgileri giresiniz ve işleminiz bittikten sonra dosyayı kapatırsınız.

NOT : işlem yapılan dosyayı kapatmazsanız hata alırsınız ve kodunuz çalışmaz dosyayı şu şekilde kapatırsınız : işlem sırasında kullanmak için hangi objeyi  kullandıysanız (birinci adımda bahsettiğim dosya_aç ,dos, dsy vb. ) yine onu yazarak .close() yazarsanız kod dosyayı işlem sonrasında kapatacağını anlar  ve hata vermez .

İlk okunduğunda mantıklı gelmeyebilir o yüzden gelin örneklerle anlayalım.

1.Örnek, Bir dosyaya Veri yazdırma:

Mesela arkadaşlar.txt dosyasına arkadaşlarınızın ismini yazacaksınız kod şu şekilde ilerler:

dosya_aç =open('arkadaşlar.txt','w')
dosya_aç.write('ahmet')												dosya_aç.write('osman')				
dosya_aç.write('ayşe')														dosya_aç.close()

Bu Kodda : birinci adımda işlemde kullanacağım objeyi belirledim (dosya_aç) ikinci adımda’ w’ modunda aarkadaşlar.txt dosyasını open komutuyla açtım üçüncü adımda başta belirlediğim obje ile yazdırmak istediğim verileri yazdım ve en son olarak dosyayı kapattım.

2.Örnek, klavyeden girilen bilgileri yazdırma:

Yine arkadaşlar.txt dosyasına isim yazalım ama bu sefer kullanıcı girsin isimleri

devam_mı = 'e'																dos =open('arkadaşlar.txt','w')											   while devam_mı == 'e' or devam_mı == 'E':										arkadaş_ismi =str(input("arkadaşınızın ismini giriniz : "))       		       dos.write(arkadaş_ismi)												         print("başka arkadaşınızın ismini girmek ister  misiniz?")                     devam_mı =str(input("evet için e/E hayır için herhangi bir tuşa basınız :      ")) 
dos.close()													    print("girdiğiniz bilgiler arkadaşlar.txt dosyasına yazdırılmıştır.")

bu kod bir öncekinden biraz daha karışık kod şöyle ilerliyor döngümü devam ettirecek bir string ataması yapıyorum sonra bir önceki örnekteki gibi arkadaşlar.txt dosyasını write modunda açıyorum ve döngü başlıyor kullanıcıdan bir arkadaşının ismini istiyorum ve dos.write ile arkadaşlar.txt dosyasına yazdırıyorum eğer başka bir arkadaşının ismini girmek isterse e veya E giriyor ve döngü devam ediyor döngüyü sonlandırmak için  herhangi bir tuşa basıp entera basarsanız girdiğiniz tüm isimler arkadaşlar.txt dosyasında görebilirsiniz.

NOT : yazdırdığımız veriler yanyana ve boşluksuz yazıldı bunu önlemek için yazdırırken araya boşluk bırakmak veya escape karakter olan ‘\n’ metodunu kullanmak faydalı olacaktır.

NOT: Ancak bu iki örnekte de dikkat edilmesi gereken bir nokta var eğer arkadaşlar.txt dosyası varsa ve içerisinde başka veriler yazıyor olsaydı o verilerin hepsi silinmiş olacak ve yerine bu arkadaşımızın adı yazıyor olacaktı peki olan verilerin üzerine yeni veri eklemek istersek nasıl yapacağız? burada ikinci dosya işlemi devreye giriyor hadi beraber bakalım.

Dosya işlemi üzerine veri yazdırma(Append modu)

Append modu da write modu gibi bir dosya yoksa yeniden oluşturur ve verileri yazar ancak append modu daha çok var olan bir dosyanın içerisine veri yazdırmak için kullanılır. Kullanımı write modundaki gibi işlem sırasında kullanacağımız bir obje belirlemeyle başlar sonra içerisine veri ekleyeceğimiz dosyayı append modunda açarız ve verileri içerisine ekledikten sonra dosyayı kapatırız

1.Örnek, dosyaya veri ekleme:  

Biraz önceki arkadaşlar.txt üzerinden gidelim

dosya_aç =open('arkadaşlar.txt','a')									dosya_aç.write('yahya')													dosya_aç.write('elif')														dosya_aç.close()

Bu örnekteki kodda arkadaşlar.txt nin içerisinde write örneğindeki arkadaşlarımızın isminin yanında bu iki ismi de görebiliriz

NOT : Eğer neden write ile değil de append ile yaptığımızı merak ediyorsanız write modunda açılan dosya ilk olarak içerisindeki bilgileri siler ve yerine sizin yazdığınız bilgileri yazar append modu ise  olan verilerin yanına yeni veri eklemenizi sağlar write ile append modu arasındaki fark budur.

2.Örnek, ekleyeceğiniz verileri klavyeden alma:

devam_mı = 'e'															    dos =open('arkadaşlar.txt','a')		 										while devam_mı == 'e' or devam_mı == 'E':										arkadaş_ismi =str(input("eklenecek arkadaşınızın ismini giriniz : "))      	   dos.write(arkadaş_ismi)												         print("başka arkadaşınızın ismini girmek ister  misiniz?")                     devam_mı =str(input("evet için e/E hayır için herhangi bir tuşa basınız :   "))
dos.close()																print("girdiğiniz bilgiler arkadaşlar.txt dosyasına eklenmiştir.")

#şimdi bir dosyaya veri yazdırmayı ve veri eklemeyi öğrendik sıra yazdığımız verileri okumaya geldi üçüncü ve son dosya işlemi okuma ile devam edeceğiz.

3. Dosya işlemi dosyanın içerisindeki bilgileri okuma (read modu)

3. ve son dosya işlemimiz bir dosyanın içerisindeki verileri okuma. Şimdi  arkadaşlar.txt dosyamızın içerisinde veriler var bunları diğerleriyle aynı yöntemle okuyacağız yine bir obje tanımlayacağız ve bu sefer dosyayı ‘r’ modunda yani read modunda açacağız ve objemizi kullanarak read() metoduyla okuyacağız hadi örnekle devam edelim

1.Örnek, dosyadan veri okuma:

dos =open ('arkadaşlar.txt','r')                          				print(dos.read())
dos.close() 

Bu kod şu şekilde ilerledi bütün metin işlemlerinde zorunlu olan objemi oluşturup dosyayı read modunda açtım aslında print yazma zorunluluğumuz yoktu kod zaten okudu ama bizim de görebilmemiz için print ettik ve dosyayı kapattık

NOT: okuma işlemini satır satır da yapabiliriz bunun için read() yerine readline() yazıp parantez içerisine hangi satırı okumak istiyorsak numarasını gireriz ve bunu print edersek başarılı oluruz

mesela arkadaşlar.txt dosyasına bir kaç satırlık veri yazalım ve bunu satır satır okuyalım

2.Örnek, satır satır okuma :      

dosya_aç = open(arkadaşlar.txt,'r')		              					    satır_1 = dosya_aç.readline(1)											satır_3 = dosya_aç.readline(3)											print(satır_1)															print(satır_3)																dosya_aç.close()

Bu kod şu şekilde ilerledi yine bir obje tanımladık ve dosyayı read modunda açtık sonra readline() metodunu kullanarak 1.ve 3. satırları okuyup bastırdık ve en son olarak dosyayı kapattık ve işimiz bitti.

Şimdi daha iyi anlayabilmemiz için bir örnek yapalım:

Bütün Modları bir örnekte kullanalım

#en kalabalık 5 şehirin ismini ve nüfusunu alan bunu şehirler.txt dosyasına yazdıran ve nüfusu en az olan 5 şehirin ismini ve nüfusunu alıp aynı dosyaya ekleyen en son olarak bu on şehiri okuyup ekrana yazdıran kodu yazalım

dosya_aç =open('şehirler.txt','w')
for sayaç in range(1,6):
    print(sayaç,'. nüfusu en kalabalık şehirin ')
    sehir_adı= str(input("ADI :"))
    sehir_nüfus= input("NÜFÜSU :")
    dosya_aç.write(sehir_adı+'\n')
    dosya_aç.write(sehir_nüfus+'\n')
print('girdiğiniz bilgiler şehirler. txt dosyasına yazıldı')
dosya_aç.close()
dos = open('şehirler.txt','a')
for sayaç in range(1,6):
    print(sayaç,'. nüfusu en az şehirin ')
    sehir_adı= str(input("ADI :"))
    sehir_nüfus= input("NÜFÜSU :")
    dos.write(sehir_adı+'\n')
    dos.write(sehir_nüfus+'\n')
print('girdiğiniz bilgiler şehirler. txt dosyasına eklendi')
dos.close()
dsy = open('şehirler.txt','r')
sehir_isim = dsy.readline()
sehir_nüfus =dsy.readline()
print(sehir_isim)
print(sehir_nüfus)
while sehir_isim != '':
    sehir_isim = dsy.readline()
    sehir_nüfus =dsy.readline()
    print(sehir_isim)
    print(sehir_nüfus)
dsy.close()

	

şimdi bu kodun yazdırdığı ve eklediği kısmın çıktısı şu şekilde ;

okuduğu kısmın çıktısı ise şu şekilde ;

ve en son olarak şehirler.txt nin içerisi şu şekilde ;

şimdi kod şu şekilde çalıştı :

1-)Dosyayı ‘w’ modunda açtık ve for döngüsü ile 5 kez isim ve nüfus bilgisi alıp yazdırdık ve dosyayı kapattık yani dosya artık  ‘w’ modunda değil .

2-)Dosyayı ‘a’ modunda tekrar açtım ve yine for döngüsü ile 5 kez şehir ve nüfus bilgisi alıp bunu şehirler.txt dosyasına ekledik ve dosyayı kapattık.

3-) En son olarak dosyayı ‘r’ modunda tekrar açıyoruz ve içerideki bilgileri while döngüsü yardımıyla okuyorup ekrana yazdırıyoruz ve dosyayı kapatıyoruz.                    

Umarım faydalı olmuştur daha iyi anlamanız için çokça örnek çözmelisiniz     ilerideki yazılarımda görüşmek üzere sağlıcakla kalın.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu