Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanNiclas Børresen Değiştirilmiş 6 yıl önce
1
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
Sabancı Üniversitesi Lise Yaz Okulu 8. ders
2
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 Sabancı Üniversitesi Lise Yaz Okulu
3
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. Okuma modu, yazma modu, vs. 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 gibi. Sabancı Üniversitesi Lise Yaz Okulu
4
Sabancı Üniversitesi Lise Yaz Okulu
Dosya Açma dosyam = open("dosya_ismi.uzantısı", "w") "w" modu dosyayı bir şey yazmak için açtığımızı belirtir. Dosyaları açarken program içinde o dosyaya erişmek için bir dosya değişkeni (ing. file handler) kullanırız Yukarıdaki dosyam bu tip bir dosya değişkeni Dosya uzantısı için şimdilik ".txt" yazalım. Bu text/metin dosyası yazdığımızı belirtir ama içerik uzantıdan da bağımsızdır (yani uzantıyı .txt yapmak gibi bir kural yok). Text dosyalarının içeriğini birden fazla satıra yayılan karakter dizisi olarak düşünebiliriz. Dosya ismini yazarken dikkat "C:\python27\ornek_programlar\ornek1.txt" yanlış "C:\\python\\ornek_programlar\\ornek1.txt" doğru Sabancı Üniversitesi Lise Yaz Okulu
5
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 // veya sadece / kullanılır Sabancı Üniversitesi Lise Yaz Okulu
6
Sabancı Üniversitesi Lise Yaz Okulu
Dosyaya Yazma Burada izleyeceğiniz adımlar şu şekilde yazılabilir: Dosyanızı açın (yazma modunda) Ö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 kapatın Örnek: dosya1.close() Sabancı Üniversitesi Lise Yaz Okulu
7
Uyarılar ve Dosya Açma Modlar
Dosyanızla işiniz bittiği zaman mutlaka kapatın Yoksa yazdığınız şeyler gidebilir. 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" Sabancı Üniversitesi Lise Yaz Okulu
8
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 Sabancı Üniversitesi Lise Yaz Okulu
9
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 Sabancı Üniversitesi Lise Yaz Okulu
10
Sabancı Üniversitesi Lise Yaz Okulu
Örnek 3 dosya1 = open("ornek2.txt", "w") dosya1.write("Sabanci Universitesi") dosya1.close() dosya1 = open("ornek2.txt", "a") dosya1.write("\tSabanci Universitesi") Dosyanın içi Sabanci Universitesi Sabanci Universitesi Sabancı Üniversitesi Lise Yaz Okulu
11
Dosyanın İçeriğini Okumak
Bunun için read() fonksiyonu kullanılır Dosyanın içi tek bir string değişkeni olarak okunur ve saklanı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 Sabancı Üniversitesi Lise Yaz Okulu
12
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 \t Dosyayı saklayın Dosyayı açın Bu kimlik bilgilerini okuyun ve ekrana bastırın Melis Yildiz Izmir Uygar Dogan Istanbul Deniz Buldan Ankara Selin Temiz Gaziantep İPUÇLARI: dosya1 = open("ornek1.txt", "w") dosya1.write("Sabanci\tUniversitesi") dosya1 = open("ornek1.txt", "r") dosyanin_ici = dosya1.read() dosya1.close() Sabancı Üniversitesi Lise Yaz Okulu
13
Sabancı Üniversitesi Lise Yaz Okulu
Küçük Ödevin Devamı Aynı ödev ama eklemeler ve bazı değişiklikler var "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\tUniversitesi") dosya1 = open("ornek1.txt", "r") dosya1 = open("ornek1.txt", "a") dosyanin_ici = dosya1.read() dosya1.close() Sabancı Üniversitesi Lise Yaz Okulu
14
Sabancı Üniversitesi Lise Yaz Okulu
Ya O Dosya Yoksa Bir dosyayı "w" modunda açarsanı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 Bir dosyayı "a" modunda açarsanız: Eğer dosya yoksa boş olarak açılır Eğer dosya önceden varsa, eski yazılanlar silinmeden açılır ve yeni yazılacak olanlar sonuna eklenir. Bir dosyayı "r" modunda açmaya kalktığınız olmayan dosyayı açmak hata verir. Bu hatayı engellemek için dosyayı açmadan önce 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 Sabancı Üniversitesi Lise Yaz Okulu
15
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 ama dosya yoksa, "Yeni bir dosya acıyorum" desin ve kaydı alsın Yeni kayıt girmek istiyorsak ve dosya varsa, "Var olan dosyaya ekliyorum" desin ve eklesin. Sabancı Üniversitesi Lise Yaz Okulu
16
Farklı Dosya Okuma Şekilleri
Yeni bir fonksiyon: readline() Bununla dosyanın bir satırını okuruz string değişkeni içine Örnek: kayitlar.txt dosyasının içeriği şu şekilde Didier Drogba Istanbul Mazhar Alanson Trabzon Donald Trump NYC Angela Merkel Almanya Sabancı Üniversitesi Lise Yaz Okulu
17
Sabancı Üniversitesi Lise Yaz Okulu
readline() Didier Droba Istanbul Mazhar Alanson Trabzon Donald Trump NYC Angela Merkel Almanya kayit_dosyasi = open("kayitlar.txt", "r") kayit = kayit_dosyasi.readline() print kayit kayit_dosyasi.close() >>> Didier Drogba Istanbul Sabancı Üniversitesi Lise Yaz Okulu
18
Sabancı Üniversitesi Lise Yaz Okulu
readline() Didier Droba Istanbul Mazhar Alanson Trabzon Donald Trump NYC Angela Merkel Almanya kayit_dosyasi = open("kayitlar.txt", "r") kayit = kayit_dosyasi.readline() print kayit kayit_dosyasi.close() >>> Didier Drogba Istanbul Mazhar Alanson Trabzon Sabancı Üniversitesi Lise Yaz Okulu
19
Tüm Satırları Birden Okumak
kayit_dosyasi = open("kayitlar.txt", "r") for satir in kayit_dosyasi: print satir >>> Didier Drogba Istanbul Mazhar Alanson Trabzon Donald Trump NYC Angela Merkel Almanya Sabancı Üniversitesi Lise Yaz Okulu
20
readlines() fonksiyonu
Açılan dosyaların satırlarını bir listeye ekler Listenin her bir elemanı bir string'dir Örnek: dosya1 = open("kayitlar.txt", "r") tum_satirlar = dosya1.readlines() print tum_satirlar >>> ['Didier Drogba\t \tIstanbul\n', 'Mazhar Alanson\t \tTrabzon\n', 'Donald Trump\t \tNYC\n', 'Angela Merkel\t \tAlmanya\n'] Sabancı Üniversitesi Lise Yaz Okulu
21
readlines() fonksiyonu
len fonksiyonu ile kaç tane kayıt olduğunu bulabiliriz. dosya1 = open("kayitlar.txt", "r") kayitlar = dosya1.readlines() print len(kayitlar) >>> 4 Sabancı Üniversitesi Lise Yaz Okulu
22
Sabancı Üniversitesi Lise Yaz Okulu
Ödev Elimizde içeriği şu şekilde olan bir dosya var (her satırda önce bir veya birden fazla kelime şeklinde isim/soyad ve en sonda yaş). Delal Abdullatif Abzak 38 Fatma Ozlem Acar 25 Ozde Acarkan 37 Atahan Adanir 69 … Bu dosya içerisinde Kaç kişi olduğunu Yaşlarının toplamını Yaşların ortalamasını En genç kişinin kaç yaşında olduğunu En yaşlı kişinin kaç yaşında olduğunu bulan ve ekrana yazan bir program yazın. Önce dosyanın adını klavyeden okusun. Eğer dosya yok ise, dosyanın bulunamadığını yazsın. Eğer dosya boş ise (dosya var ama içinde hiçbir kayıt yok ise), ortalama yaş, en genç yaş, ve en yaşlı yaş bilgilerini yazmasın ama yaşların toplamını ve kaç kişi olduğunu 0 olarak göstersin. Sabancı Üniversitesi Lise Yaz Okulu
23
Sabancı Üniversitesi Lise Yaz Okulu
Ödev (örnek çıktılar) Dosya yoksa Dosyanin adini girin: kisiliksizler.txt kisiliksizler.txt isimli dosya bulunamadı Dosya var ama içi boşsa Dosyanin adini girin: boskisiler.txt Toplam yas = 0 Kisi sayisi = 0 Dosya var ve içinde bilgi varsa (dosya içeriğinin beklenildiği formatta, yani her bir satırda boşluklar ile ayrılmış şekilde bir kişiye ait isim ve yaş bilgisinin olduğunu varsayabilirsiniz) Dosyanin adini girin: kisiler.txt Toplam yas = 51333 Kisi sayisi = 955 Ortalama yas = En genc kisi 21 yasinda En yasli kisi 87 yasinda Web sayfasında kisiler.txt ve boskisiler.txt dosyalarını bulabilirsiniz Sabancı Üniversitesi Lise Yaz Okulu
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.