Bu noktaya kadar, dosyaları nasıl okuyacağımızı öğrendik, ancak imleçle ilgili can sıkıcı bir şey yaşadık
ve sonra dosyayı kapatmak zorunda kaldık.
Peki bunu nasıl düzeltebiliriz?
Aslında böyle bir şey yapmanın ve python ile dosya IO'su yapmanın daha iyi bir yolu, yerleşik
with deyimidir.
Size daha önce söylediklerimizin yerine ne söyleyeceğimizi göstereyim.
Genişlik açık.
Dosyanın adı.
Ve istediğiniz değişken olarak söyleyin.
Yani benim dosyam.
Şimdi open ile aslında böyle bir şey yapabilirsiniz, ancak kapatma konusunda endişelenmenize gerek yok.
Bu yüzden çoğu zaman width ifadesini kullanmak istersiniz.
Python'da dosyalarla çalışmanın doğru yolu budur.
Ve eğer burayı kaydedip kaçarsam.
Benim senaryom.
Hayır.
Buradaki sütunu unuttuğum için bir hata alıyorum.
Eğer tekrar aday olursam.
Al bakalım.
Çıktımı alıyorum ve dosyamı kapatmama gerek kalmıyor.
Benim için her şey yapıldı.
Yani bu, bir dosyayı okumanın standart bir yoludur.
Şimdi.
Peki ya bir dosyaya yazmak istersek?
Şimdiye kadar sadece okuduk ve aslında kaputun altında open'ın mode adında varsayılan bir parametresi var.
Okuma anlamına gelen R'ye eşittir.
Yani mod ile dosyaları okuyabiliyoruz.
Modu belirtmediğimizde otomatik olarak okuduğumuzu varsayar.
Ama bir dosyaya yazmak isteseydik, basitçe W yapabilirdik, değil mi?
Yani bunu çalıştırırsam.
Şimdi bir hata aldığımı görüyorsunuz.
Desteklenmeyen işlem, okunamaz, çünkü.
Dosya sadece yazılabilir.
Yani okuyabilmem ve yazabilmem için yazabilmem gerekiyor.
Ah, doğru.
Bir bakalım.
Hayır.
Aslında işler böyle yürümüyor.
Öyle olacağını düşünüyorsun.
RW Ama bu biraz hileli.
Okumak ve yazmak için.
Artı okuyoruz.
Yani bunu çalıştırırsam.
Tamam.
Okuyorum ve yazıyorum ve boş bir liste alıyorum çünkü bu artık boş.
Şimdi burada bir dosyaya yazalım.
Bunu biraz daha küçültelim ki daha iyi görebilelim.
Diyelim ki bu dosyada metin olmasını istiyorum.
Ve bu metinde dosya noktamı söyleyeceğim.
Doğru.
Ve istediğim metni yazabilirim.
Diyelim ki, hey, bu.
Ben.
Şimdi burada, eğer metin yazdırırsam.
Ve bunu çalıştırıyorum.
11 mi aldım?
Hmm.
Bu ne demek oluyor?
11?
Şu anda bunun pek bir önemi yok.
Odaklanmak istediğimiz şey, hey, bu benim.
Bir dosyayı okudum.
Tamam, diyelim ki dosyayı tekrar açmak ve gerçekten tekrar yazmak istedim.
Diyelim ki bu sefer bir gülen yüz yazacağım.
Eğer bunu çalıştırırsam.
Ve geri dön.
Tamam.
Dosyaya yazmışım gibi görünüyor ama.
Oh.
Bir dosyaya bir şey yazarken istediğimiz şey bu mu?
İmleç sıfırlanır.
Bir dosyayı açtığımız zamanı hatırlıyor musunuz?
İmleç sıfıra gider.
Ve dosyaya doğru gidiyoruz.
Ve eğer orada zaten var olan bir şey varsa, onun üzerine yazarız, bu yüzden dikkatli olmalıyız.
Bu arada, bu metin dosyası az önce bize iki karakter yazdığımızı, gülen yüzü verdi.
Tamam.
Peki bunu nasıl düzeltebiliriz?
Daha önce sahip olduğumuz şeyleri bozmadığımızdan nasıl emin olabiliriz?
Yani, hey, benim ve sadece sonuna bir gülen yüz eklemek istiyorum.
Ekleme modunu kullanabiliriz.
Ekleme modu a'dır ve bu, dosyanın sonuna ekler.
Bu görünümü çalıştırırsam, gülen yüzlü benim, sonuna eklenir.
Yani bu ekleme modu.
Yine w ile yazabiliriz.
Ve eğer bunu çalıştırırsam.
Bir gülen yüz ekler.
Şimdi, neden geçen seferki gibi yapmadı ve mevcut şeyin üzerine yazmadı?
Modumuz yüzünden.
W bir dosyaya yazmamızı sağlar.
Önceden okuma yazma biliyorduk.
Olan şey, dosyayı okumamızdı.
Şunu tekrar çalıştıralım.
Aslında, geri dönelim.
Hey, ben böyleyim.
Ve eğer bunu tekrar çalıştırırsam.
Çünkü okuma yazma biliyorduk.
İmleç sıfıra ayarlıydı ve sadece doğru olanı yaparsak onu geçersiz kılıyordu.
Bunun yeni bir dosya olduğunu ve sadece gülen yüzü eklemek istediğimizi varsayacaktır.
Eğer buraya tıklarsam, bunu görüyor musun?
Şimdi sadece gülen yüz.
Bu nedenle, neye ihtiyacınız olduğuna bağlı olarak doğru modu kullandığınıza dikkat etmek istersiniz.
Şimdi, var olmayan bir dosya oluşturmak istediğimizi varsayalım.
Happy Text adında bir dosyamız olsun.
Ya da.
Aslında, hayır, öyle yapalım.
Ve bu da üzgün bir surat yazıyor.
Ama unutmayın, bu masaüstümüzde yok.
Bunu temizler ve masaüstümüze bakarsam, belirlenmiş bir metnimiz yok.
Eğer burada artı okursam.
O yüzden okuyun ve yazın, ben de bunu çalıştırayım.
Dosya bulunamadı hatası alıyorum.
Eğer burada bir sağ yaparsam ve bunu çalıştırırsam.
Tamam.
İşe yaramış gibi görünüyor.
Dosyalara bakarsam, şu anda üzücü bir metin var.
Yani şimdi açarsam.
Metin yüzüne oturttum.
Bu nedenle write, zaten mevcut değilse yeni bir dosya oluşturur veya mevcut olanın üzerine yazar.
Bu nedenle, ekleme mi, okuma mı, okuma ve yazma mı istediğiniz konusunda bir kez
daha dikkatli olmak istersiniz.
Ancak çoğu zaman en yaygın olanları okuma, yazma ve eklemedir.
Şimdi, bir sonraki videoda, bu dosya fikri hakkında konuşmak istiyorum.
Şimdilik metin dosyaları yazdım ama herhangi bir şey de yazabilirdik.
İsteseydim bir dot py dosyası hazırlayabilirdik.
Peki ya klasörlerin içi gibi farklı konumlarda bulunan dosyalara erişim?
Bu konuyu bir sonraki videoda inceleyeceğiz.