akıllı tahta etkinlikleri,soru bankası,deneme sınavı,yazılı sınav,konu anlatım,eğitim programları,yıllık planlar,ilk okuma yazma

Çıktıları Dosyaya Yazdırma

Bildiğimiz gibi print() fonksiyonu verileri ekrana yazdırmaya yarıyor. Ben çıktıları ekrana değil de bir dosyaya yazdırmak istiyorum. Bunu yapmak için için önce sistem modülünü import ediyorum.

import sys

print fonksiyonunun ekrana çıktı vermesini sağlayan değişkenidir. Önce bu değişkenin tuttuğu değeri ekrana bir yazdırıp görelim.


print(sys.stdout)

Çıktımız şu şekilde: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='windows-1254'>

Şimdi sys.stdout değişkeninin tuttuğu bu değeri başka bir değişkene yedekleyelim. Çünkü print fonksiyonunu eski haline getirmek istediğimizde bize lazım olacak.



orijinal=sys.stdout

Ben çıktıların kaydedileceği ekrana log.txt diyeceğim. Siz farklı bir isimde kullanabilirsiniz.



dosya=open("log.txt","a+")
sys.stdout=dosya
print("Kayıtlar log dosyasına kaydediliyor")

Hepsi bu kadar. Eğer eski haline döndürmek istersek. 



sys.stdout=orijinal orijinal değerine atama yapmamız yeterli

Şimdi kodlarımızı derli toplu yazalım.


#-*- utf-8 -*-
import sys
orijinal = sys.stdout
dosya=open("log.txt","a+")
sys.stdout=dosya
print("Kayıtlar log dosyasına kaydediliyor")

#eski haline dönüştürmek için
sys.stdout=orijinal
print("o eski halimden eser yok şimdi")
dosya.close() #dosyamızı kapatmayı da unutmayalım


EmoticonEmoticon