Python'a oldukça yeni yaşıyorum, bu yüzden hala dili öğreniyorum. Karşılaştığım şeylerden biri, varsayılan baskı çıktılarını değiştirmek için sys.stdout'u yeniden atamaktı. Bu yüzden bir test olarak bu yazmış:sys.stdout sys .__ stdout__ için yeniden atama
import sys
sys.stdout = open('log.txt','a')
print('hey')
sys.stdout.close()
sys.stdout = sys.__stdout__
print('hi')
'Hey' dosyasına yazılır, ancak 'merhaba' hiçbir yerde görünür. madde gerçekten does not çok fazla, ben kısa onun küçük bir sorun olarak
import sys
sys.__stdout__ = sys.stdout
sys.stdout = open(r'C:\Users\Vincent\Documents\Python\log.txt','a')
print('hey')
sys.stdout.close()
sys.stdout = sys.__stdout__
print('hi')
: 'merhaba' konsol çıkışına basılır beklenen ve 'hey' dosyasına yazılır ve Ancak, bu işleri sadece neden olması gerektiği gibi çalışmadığı fark edilebilir bir neden olup olmadığını merak ediyorum. Bunu Windows 7 Home Premium'da IDLE ve v3.2.3 üzerinde pyscripter ve taşınabilir python v3.2.1'de denedim.
Bu betiği nasıl çalıştırıyorsunuz? İlk baskının işe yarayıp yaramadığını söylemedin. * Başta sys.stdout'a başka bir değişken atadığımda ve onu değiştirdiğimde çalışır. * Bunu gösteren kodu yazmak ve çıktılarını açıklamak daha iyi olurdu. –