我对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并将其改回时,它将起作用*最好是编写说明这一点的代码并描述它的输出。 –