Python komutlarındab birinde sorun yaşıyorum!

nameslowe

80+
Katılım
25 Haziran 2021
Mesajlar
9
Reaksiyon skoru
3
import sys
k = open('başlık', 'w')
sys.stdout = k
print('karalama yazısı', flush=True)
komutlarını girdiğimde yazılarım interactive shell' e değil başka bir dosyada gözüküyor. tamam bunda sorun yok,
ama tekrar interactive shell' de gözükmesini istediğimde
sys.stdout, f = f, sys.stdout komutunu girmeme rağmen yazdıklarım interactive shell' de gözükmüyor. hatam nedir acaba?
 
Hatanız, stdout çıkışını değiştirdiğinizde orijinal stdout nesnesini saklamamanız. stdout çıkışını değiştirdiğinizde, yazdığınız her şey yeni dosyaya yönlendirilir ve orijinal stdout nesnesine yazılmaz. Daha sonra orijinal stdout nesnesine geri döndürmeye çalıştığınızda, farklı bir nesneyle değiştirildiği için yazdıklarınız yeni dosyaya yazılır.
Aşağıdaki kod yardımcı olacaktır diye düşünüyorum.
import sys
# Orijinal stdout nesnesini sakla
original_stdout = sys.stdout
# Dosyaya yazdır
k = open('baslik', 'w')
sys.stdout = k
print('karalama yazısı', flush=True)
# Orijinal stdout nesnesini geri yükle
sys.stdout = original_stdout
 
  • Beğen
Reaksiyonlar: Enco
Yeni mesajlar Yeni Konu Aç  

   

SON KONULAR

Forum istatistikleri

Konular
1,181,695
Mesajlar
10,651,888
Üyeler
187,552
Son üye
bekk24
Geri
Top