Bilgisayar Programlamasına ve Veri Analizine Giriş - VII Hüsnü Yenigün Sabancı Üniversitesi Lise Yaz Okulu 2016
Sabancı Üniversitesi Lise Yaz Okulu Modül 7 için Planımız Verileri kalıcı olarak nasıl saklarız? Sabit diskten nasıl okur ve yazarız? Dosya kavramı Dosya açmak ve kapamak 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Dosya (File) Verilerimizi sabit diskte dosyalar halinde saklarız. Dosyaya erişmek için önce dosyayı açmamız gerekir Dosyayı okumak ya da yazmak amacıyla farklı “mod”larda açarız. Kullanılış şekli: open(“file_name”, “mode_name”) “mode_name” ile dosyayı ne amaçla açtığımız belirtiriz; örneğin okumak yada yazmak, her ikisi de vb. 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Dosya Açma dosya_tutacağı = open("dosya_ismi.uzantısı", "w") "w" modu dosyayı bir şey yazmak için açtığımızı belirtir. Dosya uzantısı için şimdilik “.txt” yazalım. Bu text/metin dosyası yazdığımızı belirtir. Text dosyalarının içeriğini karakter dizisi olarak düşünebiliriz. Dosya ismini yazarken dikkat C:\python27\ornek_programlar\ornek1.txt yanlış C:\\python\\ornek_programlar\\ornek1.txt 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Dosya Açma Yol (path) belirtmezsek, dosya programın olduğu dizinde açılır dosya1 = open("ornek1.txt", "w") Başka bir dizinde açmak istiyorsak, o zaman tam path tanımlamamız gerekiyor dosya1 = open("D:\\Python27\\programs\\ornek1.txt", "w") Mac OS X’te “\\” yerine “//” kullanılır 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Dosyaya Yazma Burada izleyeceğiniz adımlar şu şekilde yazılabilir: Dosyanızı açın Örnek: dosya1 = open("ornek1.txt", "w") write() fonksiyonu ile dosyanıza veri yazabilirsiniz/ekleyebilirsiniz Örnek: dosya1.write(“Sabanci Universitesi") Dosya ile işiniz bittiğinde dosyayı close() fonksiyonu ile Örnek: dosya1.close() 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Uyarılar ve Dosya Açma Modlar Dosyanızla işiniz bittiği zaman mutlaka kapatın Dikkat: Eğer dosyanızın içinde veri varsa, "w" modunda açarsanız içindekiler silinir Farklı dosya açma modları: Okumak için " r " Hem okumak hem de yazmak için "r+" Veri eklemek için "a" 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Örnek 1 dosya1 = open("ornek1.txt", "w") dosya1.write("Sabanci Universitesi") dosya1.close() dosya1 = open("ornek1.txt", "a") Dosyanın içi Sabanci UniversitesiSabanci Universitesi 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Örnek 2 dosya1 = open("ornek1.txt", "w") dosya1.write("Sabanci Universitesi") dosya1.close() dosya1 = open("ornek1.txt", "a") dosya1.write("\nSabanci Universitesi") Dosyanın içi Sabanci Universitesi 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Örnek 3 dosya1 = open("ornek1.txt", "w") dosya1.write("Sabanci Universitesi") dosya1.close() dosya1 = open("ornek1.txt", "a") dosya1.write("\tSabanci Universitesi") Dosyanın içi Sabanci Universitesi Sabanci Universitesi 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Dosyanın İçeriğini Okumak Bunun için read() fonksiyonu kullanılır Ama yine önce dosyayı açmak gerekir Örnek. Önceki ornek1.txt dosyasını açalım dosya1 = open("ornek1.txt", "r") dosyanin_ici = dosya1.read() print dosyanin_ici dosya1.close() >>> Sabanci Universitesi Sabanci Universitesi 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Küçük Ödev Çalıştığınız klasörde "arkadaslar.txt" adında bir dosya açın. Dosyanın içerisine her satıra bir arkadaşınızın adı soyadı, doğum tarihi, doğum yeri vb. kimlik bilgilerini yazın Kişinin kimlik bilgilerinin arasına "tab" karakteri koyun Dosyayı saklayın Dosyayı açın Bu kimlik bilgilerini okuyun ve ekrana bastırın Melis Yildiz 20.10.1999 Izmir Uygar Dogan 18.08.2000 Istanbul Ayse Buldan 02.08.2000 Ankara Burak Temiz 13.03.1998 Gaziantep İPUÇLARI: dosya1 = open("ornek1.txt", "w") dosya1.write("Sabanci Universitesi") dosya1 = open("ornek1.txt", "r") dosyanin_ici = dosya1.read() dosya1.close() 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Küçük Ödevin Devamı Aynı ödev "arkadaslar.txt" dosyasının önceden yaratılmış olduğunu kabul edelim Kullanıcıya üç seçenekli bir menü sunun: "0": programdan çıkış "1": yeni kayıt ekle (ad, soyad, doğum tarihi ve doğum yerin bilgilerini kullanıcıdan isteyin ve dosyaya girin) "2": olan kayıtları oku (Bos dosya ise "Bos dosya" yazdır) Kullanıcı programdan çıkmadıkça, menü tekrar verilsin İPUÇLARI: dosya1 = open("ornek1.txt", "w") dosya1.write("Sabanci Universitesi") dosya1 = open("ornek1.txt", "r") dosya1 = open("ornek1.txt", "a") dosyanin_ici = dosya1.read() dosya1.close() 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Ya O Dosya Yoksa Bir dosyayı "w" modunda acarsanız, dosya var mı yok mu demeden dosya açılır Dosya önceden varsa, yazarken eski yazılanlar silinir Dosya yoksa boş olarak açılır Diğer modlarda, "r", "a", olmayan dosyayı açmak hata verir Bunun için aşağıdaki kontrolü yaparız if os.path.exists(dosya_ismi) == True: Bunun için önce, programın başına import os dememiz gerekir 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Bu Artık Küçük Bir Ödev Değil Aynı ödev Önceden yaratılmış bir dosya olmasa da çalışsın Kimlik bilgilerini kullanıcıdan isteyin Kullanıcıya aynı üç seçeneği verin Dosya ismini kullanıcı girsin Dosya açılmadan önce dosyanın olup olmadığı kontrol edilsin; dosya yoksa Okuma yapmak istiyorsak, "Böyle bir dosya yok" desin Yeni kayıt girmek istiyorsak, "Yeni bir dosya acıyorum" desin ve kaydı alsın 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Farklı Dosya Okuma Şekilleri Yeni bir fonksiyon: readline() Bununla dosyanın bir satırını okuruz Örnek: arkadaslar.txt dosyasının içeriği Erkay Savas 01.05.1891 Istanbul Mazhar Alanson 05.06.1950 Trabzon Barrack Obama 04.08.1960 Hawai Angela Merkel 01.02.1770 Almanya 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu readline() Erkay Savas 01.05.1891 Istanbul Mazhar Alanson 05.06.1950 Trabzon Barrack Obama 04.08.1960 Hawai Angela Merkel 01.02.1770 Almanya kayit_dosyasi = open("arkadaslar.txt", "r") kayit = kayit_dosyasi.readline() print kayit kayit_dosyasi.close() >>> Erkay Savas 01.05.1891 Istanbul 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu readline() Erkay Savas 01.05.1891 Istanbul Mazhar Alanson 05.06.1950 Trabzon Barrack Obama 04.08.1960 Hawai Angela Merkel 01.02.1770 Almanya kayit_dosyasi = open("arkadaslar.txt", "r") kayit = kayit_dosyasi.readline() print kayit kayit_dosyasi.close() >>> Erkay Savas 01.05.1891 Istanbul Mazhar Alanson 05.06.1950 Trabzon 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
Tüm Satırları Birden Okumak kayit_dosyasi = open("kayitlar.txt", "r") for satir in kayit_dosyasi: print satir >>> Erkay Savas 01.05.1891 Istanbul Mazhar Alanson 05.06.1950 Trabzon Barrack Obama 04.08.1960 Hawai Angela Merkel 01.02.1770 Almanya 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
readlines() fonksiyonu Açılan dosyaların satırlarını bir listeye ekler Örnek: dosya1 = open("kayitlar.txt", "r") tum_satirlar = dosya1.readlines() print tum_satirlar >>> ['Erkay Savas\t01.05.1891\tIstanbul\n', 'Mazhar Alanson\t05.06.1950\tTrabzon\n', 'Barrack Obama\t04.08.1960\tHawai\n', 'Angela Merkel\t01.02.1770\tAlmanya'] 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu
readlines() fonksiyonu dosya1 = open("kayitlar.txt", "r") kayitlar = dosya1.readlines() print len(kayitlar) >>> 4 22.02.2019 Sabancı Üniversitesi Lise Yaz Okulu