from sys import stdout
stdout = open('file', 'w')
print 'test'
stdout.close()
创建了文件,但是里面什么也没有。
我不得不使用
import sys
sys.stdout = open('file', 'w')
print 'test'
sys.stdout.close()
但是from ... import...
不会自动使名称可用吗?为什么我仍然需要使用sys.stdout
而不是stdout
?
from sys import stdout
stdout = open('file', 'w')
print 'test'
stdout.close()
import sys
sys.stdout = open('file', 'w')
print 'test'
sys.stdout.close()
但是from ... import...
不会自动使名称可用吗?为什么我仍然需要使用sys.stdout
而不是stdout
?
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()
import sys
。 - ATOzTOAsys.stdout
的作用。然而,我认为你会从 logging 模块 中受益匪浅。 - inspectorG4dget