问题是这样的:print
相当于sys.stdout.write()
.
因此,当您这样做时from sys import stdout
,该变量stdout
将不会被print
.
但是当你这样做时
import sys
print 'test'
它实际上写入sys.stdout
指向file
您打开的哪个。
分析
from sys import stdout
stdout = open('file', 'w')
print 'test' # calls sys.stdout.write('test'), which print to the terminal
stdout.close()
import sys
sys.stdout = open('file', 'w')
print 'test' # calls sys.stdout.write('test'), which print to the file
sys.stdout.close()
结论
这有效...
from sys import stdout
stdout = open('file', 'w')
stdout.write('test')
stdout.close()