Bilgisayar Programlamasna ve Veri Analizine Giri VII Hsn
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII Hüsnü Yenigün Sabancı Üniversitesi Lise Yaz Okulu 2016
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 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 2
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. 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 3
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: python 27ornek_programlarornek 1. txt yanlış – C: \python\ornek_programlar\ornek 1. txt 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 4
Dosya Açma • Yol (path) belirtmezsek, dosya programın olduğu dizinde açılır – dosya 1 = open("ornek 1. txt", "w") • Başka bir dizinde açmak istiyorsak, o zaman tam path tanımlamamız gerekiyor – dosya 1 = open("D: \Python 27\programs\ornek 1. txt", "w") • Mac OS X’te “\” yerine “//” kullanılır 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 5
Dosyaya Yazma • Burada izleyeceğiniz adımlar şu şekilde yazılabilir: 1. Dosyanızı açın – Örnek: dosya 1 = open("ornek 1. txt", "w") 2. write() fonksiyonu ile dosyanıza veri yazabilirsiniz/ekleyebilirsiniz – Örnek: dosya 1. write(“Sabanci Universitesi") 3. Dosya ile işiniz bittiğinde dosyayı close() fonksiyonu ile – 23. 9. 2021 Örnek: dosya 1. close() Sabancı Üniversitesi Lise Yaz Okulu 6
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" 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 7
Örnek 1 dosya 1 = open("ornek 1. txt", "w") dosya 1. write("Sabanci Universitesi") dosya 1. close() dosya 1 = open("ornek 1. txt", "a") dosya 1. write("Sabanci Universitesi") dosya 1. close() • Dosyanın içi Sabanci Universitesi 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 8
Örnek 2 dosya 1 = open("ornek 1. txt", "w") dosya 1. write("Sabanci Universitesi") dosya 1. close() dosya 1 = open("ornek 1. txt", "a") dosya 1. write("n. Sabanci Universitesi") dosya 1. close() • Dosyanın içi Sabanci Universitesi 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 9
Örnek 3 dosya 1 = open("ornek 1. txt", "w") dosya 1. write("Sabanci Universitesi") dosya 1. close() dosya 1 = open("ornek 1. txt", "a") dosya 1. write("t. Sabanci Universitesi") dosya 1. close() • Dosyanın içi Sabanci Universitesi 23. 9. 2021 Sabanci Universitesi Sabancı Üniversitesi Lise Yaz Okulu 10
Dosyanın İçeriğini Okumak • Bunun için read() fonksiyonu kullanılır • Ama yine önce dosyayı açmak gerekir • Örnek. Önceki ornek 1. txt dosyasını açalım dosya 1 = open("ornek 1. txt", "r") dosyanin_ici = dosya 1. read() print dosyanin_ici dosya 1. close() >>> Sabanci Universitesi >>> 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 11
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 Melis Yildiz Uygar Dogan Ayse Buldan Burak Temiz • Dosyayı saklayın • Dosyayı açın 20. 1999 18. 08. 2000 02. 08. 2000 13. 03. 1998 Izmir Istanbul Ankara Gaziantep • Bu kimlik bilgilerini okuyun ve ekrana bastırın İPUÇLARI: dosya 1 = open("ornek 1. txt", "w") dosya 1 = open("ornek 1. txt", "r") dosya 1. close() 23. 9. 2021 dosya 1. write("Sabanci Universitesi") dosyanin_ici = dosya 1. read() Sabancı Üniversitesi Lise Yaz Okulu 12
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: dosya 1 = open("ornek 1. txt", "w") dosya 1 = open("ornek 1. txt", "r") dosya 1 = open("ornek 1. txt", "a") 23. 9. 2021 dosya 1. write("Sabanci Universitesi") dosyanin_ici = dosya 1. read() dosya 1. close() Sabancı Üniversitesi Lise Yaz Okulu 13
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 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 14
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 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 15
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 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 16
readline() Erkay Savas Mazhar Alanson Barrack Obama Angela Merkel 01. 05. 1891 05. 06. 1950 04. 08. 1960 01. 02. 1770 Istanbul Trabzon Hawai Almanya kayit_dosyasi = open("arkadaslar. txt", "r") kayit = kayit_dosyasi. readline() print kayit_dosyasi. close() >>> Erkay Savas >>> 23. 9. 2021 01. 05. 1891 Istanbul Sabancı Üniversitesi Lise Yaz Okulu 17
readline() Erkay Savas Mazhar Alanson Barrack Obama Angela Merkel 01. 05. 1891 05. 06. 1950 04. 08. 1960 01. 02. 1770 Istanbul Trabzon Hawai Almanya kayit_dosyasi = open("arkadaslar. txt", "r") kayit = kayit_dosyasi. readline() print kayit_dosyasi. close() >>> Erkay Savas 01. 05. 1891 Mazhar Alanson 05. 06. 1950 >>> 23. 9. 2021 Istanbul Trabzon Sabancı Üniversitesi Lise Yaz Okulu 18
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 Almanya 23. 9. 2021 01. 02. 1770 Sabancı Üniversitesi Lise Yaz Okulu 19
readlines() fonksiyonu • Açılan dosyaların satırlarını bir listeye ekler • Örnek: dosya 1 = open("kayitlar. txt", "r") tum_satirlar = dosya 1. readlines() print tum_satirlar >>> ['Erkay Savast 01. 05. 1891t. Istanbuln', 'Mazhar Alansont 05. 06. 1950t. Trabzonn', 'Barrack Obamat 04. 08. 1960t. Hawain', 'Angela Merkelt 01. 02. 1770t. Almanya'] >>> 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 20
readlines() fonksiyonu dosya 1 = open("kayitlar. txt", "r") kayitlar = dosya 1. readlines() print len(kayitlar) >>> 4 >>> 23. 9. 2021 Sabancı Üniversitesi Lise Yaz Okulu 21
- Slides: 21