Python 3中Print输出重定向的几种实现方案

栗子
栗子
发布时间:2026-10-14 | 5人浏览过
原创

本文总结了Python 3中实现print输出重定向的三种主要方法。包括直接通过文件对象写入、利用sys模块临时重定向标准输出流,以及通过编写包含write方法的自定义类来捕获输出。文章提供了具体的代码示例和操作步骤,帮助开发者在不同场景下灵活处理程序输出。

Python 3 Print重定向方法概述

方法1:

方法一:直接写入文件对象


import sys 
 
f=open('test.txt','a+') 
a='123' 
b='456' 
print >> f,a,b 
f.close() 

方法2:

方法二:利用sys模块重定向标准输出


import sys 
 
f=open('a.txt','w') 
old=sys.stdout #将当前系统输出储存到临时变量 
sys.stdout=f #输出重定向到文件 
print 'Hello World!' #测试一个打印输出 
sys.stdout=old  #还原系统输出 
f.close() 
print open('a.txt','r') # 错误的方法,仅用于查看输出,了解python 
print open('a.txt','r').read() 

import sys 
year=1 
years=15 
bj=10000 
rate=0.05 
f=open('total.txt','w+') 
while year < years: 
   bj=bj*(1+rate) 
   print >> f,"第%d年,本息合计%0.2f" % (year,bj) 
   year+=1 

方法3:

通过自定义类实现重定向的核心在于该类需具备write方法,从而模拟文件类型对象的行为,使系统输出能够被重定向至该实例。

方法三:通过自定义类模拟文件行为


class FakeOut: 
 def __init__(self): 
  self.str='' 
  self.n=0 
 def write(self,s): 
  self.str+="Out:[%s] %s\n"%(self.n,s) 
  self.n+=1 
 def show(self): #显示函数,非必须 
  print self.str 
 def clear(self): #清空函数,非必须 
  self.str='' 
  self.n=0 
f=FakeOut() 
import sys 
old=sys.stdout 
sys.stdout=f 
print 'Hello weird.' 
print 'Hello weird too.' 
sys.stdout=old 
f.show() 
# 输出: 
# Out:[0] Hello weird. 
# Out:[1] 
 
# Out:[2] Hello weird too. 
# Out:[3] 

以上关于Python 3中print重定向输出的几种方法总结即为分享的全部内容,希望能为读者提供有价值的参考,同时也欢迎大家继续支持本站获取更多信息。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表