Çıktıyı Dosyaya Yazdırmak

Aşağıdaki kodların çıktısını .txt veya .docx dosyasına yazdırmak istiyorum ama yapamadım. Nerede hata yapıyorum? IDLE üzerinde yazdım.

f = open(“dosya.txt”, “w”)
a = 0
while a < 100:
a += 1
if a % 2 == 0:
print(a, file=f)
f.close()

ekleme: Gönder deyince while - if blokları altındaki girintiler kayboldu. Girintili halini mesaj olarak nasıl gönderebilirim

Yazdığınız kodlarda ufak bir değişiklik yapmak gerekiyor. print() fonksiyonu, standart çıktı neresiyse oraya yazdırma işlemlerini yapar. Kullanıcı, standart çıktıyı değiştirmezse yazılar konsol ekranına bastırılır. Standart çıktıyı değiştirmek için sys modülünü programın içine aktarmanız ve çıktıların nereye bastırılacağını belirtmeniz gerekiyor.

import sys

yedek = sys.stdout
f = open("dosya.txt", "w")
sys.stdout = f
a = 0
while a < 100:
    a += 1
    if a % 2 == 0:
        print(a)
f.close()
sys.stdout = yedek

İlk satırda önce sys modülü programın içine aktarıldı. İkinci satırda standart çıktının yedeği oluşturuldu, Üçüncü satırda dosya tanımlandı. Dördüncü satırda standart çıktı dosyaya eşitlendi, sonraki satırlarda dosyaya bastırılacak olan işlemler tanımlandı. Onuncu satırda dosya kapatıldı ve son olarak onbirinci satırda standart çıktı tekrar eski haline getirildi.

1 Beğeni

Teşekkürler üstâdım! Sağolun! Kodları girintili hâlleriyle foruma gönderirken nasıl yazdınız? Ben yapamadım yukarıda

Rica ederim abicim, kodları girintili halleriyle yazmak için köşeli parantezler içerisinde code yazıyorsunuz, daha sonra kodlarınızı yazıyorsunuz ve son olarak yine köşeli parantez içinde /code yazıyorsunuz.

1 Beğeni

Şu adreste tartışıldı bu konu oraya bakabilirsiniz.

1 Beğeni