Python metin dosyasına input yazdırmak

Merhaba arkadaşlar bu hatayı alıyorum yapmak istediğim şey txt dosyasına adamın yazdığı şeyi (inputu) yazmak.

Kodum:

import time, os


def satir_sil(dosya, satir):
    # Satırı silinecek dosyayı okuma modunda açın.
    with open("new.txt", "r", encoding="utf-8") as d:
        # Dosyanın satırlarını okuyun.
        oku = d.readlines()
    #Aynı dosya ismine sahip yeni bir dosya yazacağız.
    with open("new.txt", "w", encoding="utf-8") as d:
        # Oku listesindeki her bir eleman ve indis değerine
        # ulaşmak için bir for döngüsü tanımlıyoruz.
        for index, line in enumerate(oku):
            # Eğer indis değeri silmek istediğimiz satır ise
            if index == satir:
                # Dosyaya sadece "\n" kaçış dizisini yazdırıyoruz.
                d.write("\n")
            # Aksi durumda
            else:
                # Satırı yazdırıyoruz.
                d.write(line)


print("MEVCUT BAKIYE: 0TL")
time.sleep(2)
os.system("cls")


cik = input("Lütfen bakiye yüklemek için 1'e, çıkmak için 2'yi tuşlayınız.")
if cik == "1":
	os.system("cls")
	bakiye_yukle = int(input("Kaç tl bakiye yüklemek istiyorsunuz?"))
	if bakiye_yukle > 50:
		os.system("cls")
		print("50 TL ve üzeri bakiye yükleme yapamazsınız. Tekrar deneyin.")
	elif bakiye_yukle < 50:
		print("Bakiye yükleme işlemi gerçekleştiriliyor...")
		with open("new.txt", "r+", encoding="utf-8") as file:
			
			satir_sil("new.txt", 0)
			file.write(int(bakiye_yukle))

	

elif cik == "2":
	exit()

input()

Aldığım hata:
Traceback (most recent call last):
File “C:/Users/hp/Desktop/KODLAMA/PYTHON/giris.py”, line 41, in
file.write(int(bakiye_yukle))
TypeError: write() argument must be str, not int

Merhaba hoş geldiniz.

Hata çıktısına bakarsak, hatanın aşağıdaki satırdan kaynaklandığı anlaşılıyor.

Hata açıklaması şöyle:

TypeError: write() argument must be str, not int

O halde write argümanına int veri tipinde değil str veri tipinde bir argüman yazmalısınız.

int tipindeki bir veriyi str tipindeki bir veriye çevirmek için str(bakiye_yukle) yazmanız yeterli olacaktır.

2 Beğeni

Metin (text) dosyasına integer doğrudan yazılmaz. Aslında bir yolu var ama burada göstermek doğru bir yaklaşım değil.

r+ modunda zaten yazamazsınız dosya okuma modunda açılmış. Yazma yada ekleme modunda açmanız gerekir.

Yazdıktan sonra ,

Dosyayı nasıl kapattığınızı , yada çıkış yaptığınızı da göremiyorum.

Kolay gelsin.

1 Beğeni

Merhaba hocam çok teşekkür ederim. Yaptım.

Hocam merhaba cevabınız için çok teşekkürler ben r+ yapmıştım zaten bir kaç gün önce kaydetmemişim.