我對Python很新,所以我仍然只是在學習語言。我遇到的其中一件事是重新分配sys.stdout來更改打印的默認輸出。所以我寫了這個測試:sys.stdout不重新分配給sys .__ stdout__
import sys
sys.stdout = open('log.txt','a')
print('hey')
sys.stdout.close()
sys.stdout = sys.__stdout__
print('hi')
'嘿'寫入文件,但'嗨'顯示無處。然而,這正常工作,和「嗨」寫入文件,與「喜」被打印到控制檯輸出:
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')
總之它,這並不真正的問題太多了,我是一個小問題只是想知道是否有一個明顯的原因,爲什麼它不按照它應該的方式工作。我在Windows 7 Home Premium上使用IDLE和v3.2.3上的pyscripter以及我的便攜式python v3.2.1嘗試了這一點。
你如何運行這個腳本?你沒有告訴第一個'print'是否起作用。 *當我在開始時將一些其他變量分配給sys.stdout並將其改回時,它將起作用*最好是編寫說明這一點的代碼並描述它的輸出。 –