python捕获print标准输出

本文介绍了一种在Python中将print函数的输出捕获并转换为字符串的方法,通过自定义一个具有write接口的类,可以实现在不使用文件的情况下,将所有print内容收集到一个字符串变量中。

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

起因

写函数的时候把需要用的东西都print了。
结果后面要用的print的东西。
又不想再return。
索性像个办法把print捕获作为一个string。

经过

print的实质是调用了系统的标准输出,

print("hello")
sys.stdout.write('hello'+'\n')

上面两句话是等价的。
网上大都是有把输出重定向到文件,但是我只要输出作为string。先写入文件再读取就太不优雅了。
直接构造一个有write接口的类。

class redirect:
    content = ""

    def write(self,str):
        self.content += str
    def flush(self):
        self.content = ""

然后

r = redirect()
sys.stdout = r

从此print的内容都被写入到r.content中了。
注意,是在重定向这句话执行之后,print的内容才会写入到r.content。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值