Merhabalar,
Bir arkadaşımıza yardımcı olmak için kayıt/giriş sistemi yapıyordum ve Python’u iyice unuttuğumu fark ettim.Aşağıdaki kod neden dosyayı oluşturuyor ancak dosyaya bir şey yazmıyor?
import os
print("Kayıt olmak için 1 yazınız.\nGiriş yapmak için 2 yazınız.")
cevap = int(input())
#Eğer 1 yazılırsa,yani kayıt olmak istenirse
if cevap == 1:
kullaniciadi = input("Bir kullanıcı adı oluşturun : ")
sifre = input("Bir şifre oluşturun : ")
kullanici = open("kullanıcı.txt", "w")
kullanici.write(kullaniciadi)
#Eğer 2 yazılırsa,yani giriş yapmak istenirse
elif cevap == 2:
pass
else:
print("Lütfen 1 veya 2 tuşunu tuşlayın.")
input()
quit()
Merhaba,
Kullanıcı adını yazıyor. Şu an Ubuntu kullanıyorum, Eğer Windows kullanıyorsanız ve input
lara türkçe karakterler girecekseniz, open
fonksiyonuna encoding="utf-8"
parametresini eklemeniz gerekiyor.
Ayrıca os
modülünü gereksiz yere içe aktarmışsınız. Ve açtığınız dosyayı da kapatmamışsınız, dosyayı kapatana kadar yazdığınız veriler tamponda bekletilir. Yazdırılacak metnin tamponda beklememesi için flush
metodunu kullanmanız gerekiyor. Ancak burada dosya işlemleri çok uzun sürmüyor ve input
ile almış olduğunuz veriler tamponda çok bekletilmiyor ve close
fonksiyonunu çağırmamanıza rağmen dosya program sonlandığında kapatılıyor. Yine de dosya işlemlerinden sonra dosyayı kapatmanız tavsiye edilir. Veya open
fonksiyonunu with
deyimi ile birlikte kullanabilirsiniz.
input
a abc değerini yazmıştım.Oysaki kodları belgelerden almıştım :
Bir hata var galiba.Burada dosya kapatılmadan işlem yapılmaya çalışılmış.
O örneği kim yazdıysa dosyayı kapatmayı unutmuş. Ancak kodda sadece bu satır varsa, zaten program sonlandığında dosya da kapatılır ve dosyaya Halil Pazarlama: 120.000 TL"
yazılır. Sizin örneğinizde de dosyaya kullaniciadi
değişkeninin aldığı değer yazılıyordu. Sizde nasıl dosyaya yazılmadı anlamadım.
Bende dosya oluşturuluyor.Hata falan vermiyor ancak dosyanın içi boş nedense.Python 3.9.0 kullanıyorum,tek fark o.