Python not et komutu acil yardım

    if x == "not et":
        input("Dosya ismi ne olsun?: ")
        txtFile = input + ".txt"
        input("Ne kaydetmek istersin?: ")
        theText = input
        f = open(txtFile, encoding="utf-8")
        f.writelines(theText)
        f.close()

kodların da bir hata var düzeltebilen var mı?

Var. Neden olmasın? Düzeltebiliriz tabi ki.

inputları değişkenlere atıp dener misin?

Yanlış anlamayın ama bence sıfırdan bir Python dokümantasyonu okumanızda yarar olabilir. Aşağıdaki her iki kaynak da Türkçe’dir. Lütfen okuyun.

https://docs.python.org/tr/3/

Inputları değişik şekilde değişkenlere atamışta benim ilk gördüğüm f=open kısmında dosyaya yazmak için “w” parametresi yazmamış, “w” belirtilmeden dosya açıldığında aslinda default olarak "r"read modunda açmış oluyor

if x == "not et":

x nereden geliyor bilmiyoruz. x, “not et” e eşit ise aşağıdaki kodu çalıştır demiş oluyoruz. Umarız o kısımda sorun yoktur.

Kodun o kısmı bizde olmadığından o kısmı çıkarıp çalıştıralım.

input("Dosya ismi ne olsun?: ")
txtFile = input + ".txt"
input("Ne kaydetmek istersin?: ")
theText = input
f = open(txtFile, encoding="utf-8")
f.writelines(theText)
f.close()

Dosya ismi ne olsun diye sordu:

deneme diye cevap verdim.

O da bana dedi ki; 2. satırında problem var.

Tip hatası, desteklenmeyen operatör tipi + için…

input 'u yanlış kullanmışım.

input bir değişken gibi görünmüş ama aslında input() adında bir foksiyondan dönen değeri almam gerekiyor muş.

txtFile = input ("Dosya ismi ne olsun?: ")+ ".txt"
input("Ne kaydetmek istersin?: ")
theText = input
f = open(txtFile, encoding="utf-8")
f.writelines(theText)
f.close()

Tamam input() içine mesajımı yazıp + yazıp .txt yazarsam artık,

txtFile değişkenime aldığım dosya ismi ile .txt uzantımı birleştirip atabildim.

theText için de aynı hatayı yapmışım:

txtFile = input ("Dosya ismi ne olsun?: ")+ ".txt"
theText = input("Ne kaydetmek istersin?: ")
f = open(txtFile, encoding="utf-8")
f.writelines(theText)
f.close()

Şimdi çalıştıralım:

dosya ismi deneme olsun, içine de test yazalım:

Yine hata verdi.

Dosya bulunamadı hatası vermiş. deneme.txt adında bir dosya yada klasör yok diyor.

Demek ki ben dosya yazma konusunu tam anlamamışım.

Temel Dosya İşlemleri — Yazbel Python Belgeleri

Şuradan bakıyorum.

Dosyama, “a”, “w”, “b” gibi bir parametre vermem gerekiyor muş.

Hangisini seçsem acaba.

Eğer bir dosya yoksa oluştursun, varsa dosyaya eklesin diye düşüneyim.

o zaman “a” yani append parametresi bana uygun.

O zaman writelines () fonksiyonuma “a” bildirimi yapayım:

txtFile = input("Dosya ismi ne olsun?: ")+ ".txt"
theText = input("Ne kaydetmek istersin?: ")
f = open(txtFile, "a", encoding="utf-8")
f.writelines(theText)
f.close()

Şimdi kodumuzu deneyelim.

image

şimdi iki kere kodumu alt alta çalıştırdım.

Bakalım dosyaya ne yazmış?

image

Arka arkaya testtest diye iki kere yazmış.

Bu kadar.

Eğer, hata mesajlarını yazmaz, kodlarında bir hata var düzeltebilen var mı dersen.

Hata mesajlarını bile yazmamış, konuya ilgisiz, hem acil diyor hemde iki satır hata mesajı ve ekran görütüntüsü bile koyarak acil işini hızlandırmaya üşenmiş diye düşünürüz.

Yani aslında sorunun çözümünü bundan 15 saat önce alabilirdin.

Ama maalesef bu saate kaldı.

Hata mesajları, hataların düzeltilmesi için yardımcı bilgiler içerir. Hata mesajları kod çalışmasın sorun çıksın diye verilmez.

Yani hata mesajları atlatılması gereken ufak ayak bağları değil, çözüm ipuçlarıdır.

Hata mesajlarını okumayı ve çözmeyi öğrenirsen daha az yardıma ihtiyaç duyarsın.

Diğer kullanıcıların tavsiyelerine uy. Kodundaki hatalar yeni başladığını gösteriyor. İnsanlık hali tabi ki yeni öğrenirken hata yapacaksın, hata yapa yapa öğrenilir zaten.

Ama soru sorarken, hata mesajlarını yazar, nerelerde neyi gözden kaçırdığına bakarsan daha hızlı ilerlersin.

Bu arada, writelines, yerine write kullanmayı da düşünebilirsin. Çünkü writelines bize dosyaya liste tipinde yazma olanağı verirken, write ile farklı veriler girebilirsin. Verdiğim linki okursan faydalı olur.

Kolay gelsin.

3 Beğeni

knk dosyayı with open ile py den txt çevirt with open kodunu kullan ben öyle yapıyorum keyloger veya trojan yapaarken sana tavsiyem budur iyi çalışmalar sana.

Şu uğraşına hayran kaldım. Bence bir sorunun çözüme nasıl ulaşacağını, nasıl sorulacağını öğretmek daha iyi olur. Böyle yazınca detaylardan kaçınırlar ve anlamadığımız soruna çözüm üretmeye çalışırız. Gelip bir teşekkür etmezse yazıklar olsun :slight_smile: