python-3-print重定向输出的几种方法

来源:互联网 发布:停车场收费系统数据库 编辑:程序博客网 时间:2024/05/22 03:31

方法1:

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

方法2:

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


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


方法3:

自行编写一个类,这个类只要有write函数,以模拟file类型就可以将系统输出重定向到其上。

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=0f=FakeOut()import sysold=sys.stdoutsys.stdout=fprint 'Hello weird.'print 'Hello weird too.'sys.stdout=oldf.show()# 输出:# Out:[0] Hello weird.# Out:[1] # Out:[2] Hello weird too.# Out:[3]






原创粉丝点击