sys.stdout 重定向

本文详细介绍了Python中sys.stdout的功能与使用方法,包括如何打开文件、输出内容及关闭操作,强调了输出恢复的重要性,并解释了sys.stdout.flush()的作用。同时提到了sys.stdin和sys.stderr的相似用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通俗的来说,sys.stdout的功能类似与C++里面的文件输出功能fprintf。

接下来直接入正题,让我们来看代码:

>>> import sys
>>> temp=sys.stdout

>>> sys.stdout=open('E:\\pythonCode\\1.txt','w')  #注意是双\\
>>> print 1,2,3                     #1.txt中增加了这三个数字
>>> sys.stdout.close()         #关闭,有点类似fclose()

假若我们close而不进行输出恢复,看看会有什么结果:

>>> print 1,2,3

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    print 1,2,3
ValueError: I/O operation on closed file

所以我们需要将sys.stdout进行恢复:

>>> sys.stdout=temp
>>> print 1,2,3
1 2 3

顺便说一下,sys.stdout.flush() 可以让数据被立即输出,因为默认情况下,sys.stdout是被缓冲的。

类似的用法还有:

sys.stdin,sys.stderr.

转载于:https://www.cnblogs.com/menghuizuotian/p/3762878.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值