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.
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