Window下python2.7在使用reload(sys)后,再使用print语句无输出的解决方法

应该是在idle下运行的吧? 无法print是因为idle的stdout并非是默认的stdout,所以reload(sys)之后就所有到stdout的输出就看不到了,可以考虑如下的代码在reload(sys)之后再把stdout换回去

import sys
stdout = sys.stdout
reload(sys)
sys.stdout = stdout

同样的,还要对stdin, stderr做一样的处理

完整测试代码过程为

>>> print "dddd"
	dddd
	>>> import sys
	>>> stdout = sys.stdout
	>>> stdin = sys.stdin
	>>> stderr = sys.stderr
	>>> reload(sys)
	>>> print "dddd"
	>>> sys.stdout = stdout
	>>> sys.stdin = stdin
	>>> sys.stderr = stderr
	>>> print "dddd"
	dddd


你可能感兴趣的:(Python)