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

方法1:

import sys

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

方法2:

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函数,以模拟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=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]






  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值