我对 Python 很陌生,所以我仍然只是在学习这门语言。我遇到的一件事是重新分配 sys.stdout 以更改 print 的默认输出。所以我写了这个作为测试:
import sys
sys.stdout = open('log.txt','a')
print('hey')
sys.stdout.close()
sys.stdout = sys.__stdout__
print('hi')
'Hey' 被写入文件,但 'hi' 无处显示。但是,这按预期工作,并且“嘿”被写入文件,“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 上尝试过这个,在 v3.2.3 和我的便携式 python v3.2.1 上使用 IDLE 和 pyscripter。