小编Vin*_*nce的帖子

sys.stdout没有重新分配给sys .__ stdout__

我是Python的新手,所以我还在学习语言.我遇到的一件事是重新分配sys.stdout来更改print的默认输出.所以我把它写成了一个测试:

import sys
sys.stdout = open('log.txt','a')
print('hey')
sys.stdout.close()
sys.stdout = sys.__stdout__
print('hi')
Run Code Online (Sandbox Code Playgroud)

'嘿'被写入文件,但'hi'无处可见.但是,这可以按预期工作,并且'hey'被写入文件,'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')
Run Code Online (Sandbox Code Playgroud)

简而言之,这是一个并不重要的小问题,我只是想知道是否有一个明显的原因导致它不按预期的方式工作.我在Windows 7家庭高级版上使用IDLE和pyscripter在v3.2.3和我的便携式python v3.2.1上尝试过这个.

python python-3.x

7
推荐指数
2
解决办法
2530
查看次数

标签 统计

python ×1

python-3.x ×1