#小练习 重定向与sys.stdout对象

本文介绍了一个使用Python实现的标准输出重定向方法。通过定义一个名为RedictTarget的类,可以将原本打印到屏幕的内容改写入指定的文件中。此技术在进行自动化脚本编写、日志记录等方面非常有用。

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

import sys

class RedictTarget(object):
    '''这个类用于演示重定向,讲sys.stdout保存至一个变量中,
    然后将sys.stdout指向某个文件对象,输出内容至该文件对象'''

    def __init__(self,filename):
        self.f=open(filename,'w')
        #保存重定向标准输出对象
        old_stdout=sys.stdout
        #输出至文件f
        sys.stdout=self.f

    def writeTofile(self,content):
        self.f.write(content) #输出至文件对象

        print 'should be in file,too\n' #输出至文件对象

        sys.stdout.write("bulid file successfully")#输出至文件对象

        self.f.flush()

        self.f.close()



r=RedictTarget('target.txt')
r.writeTofile('should be in file \n')


PS D:\P> & C:/Users/SUNJINGKUN/AppData/Local/Programs/Python/Python313/python.exe d:/P/Python练习/爬/练习.py DevTools listening on ws://127.0.0.1:55097/devtools/browser/8d8b9fee-0c94-40ee-91e1-1d9dc96c15b3 [22840:5788:0724/150410.816:ERROR:ui\gl\direct_composition_support.cc:615] AMD VideoProcessorGetOutputExtension failed: 鏈寚瀹氱殑閿欒 (0x80004005) <selenium.webdriver.remote.webelement.WebElement (session="879172169ddf15fd02d32fe598ec75cd", element="f.86B6C4C85FED9A1B63BF3EC5400C5C75.d.AD0BAAB3B5E4CFFF5F0C3793310DB8AE.e.6")> PS D:\P> & C:/Users/SUNJINGKUN/AppData/Local/Programs/Python/Python313/python.exe d:/P/Python练习/爬/练习.py WARNING: All log messages before absl::InitializeLog() is called are written to STDERR I0000 00:00:1753340830.597245 2108 voice_transcription.cc:58] Registering VoiceTranscriptionCapability WARNING: All log messages before absl::InitializeLog() is called are written to STDERR I0000 00:00:1753340830.884276 13664 voice_transcription.cc:58] Registering VoiceTranscriptionCapability [14584:24940:0724/150712.908:ERROR:google_apis\gcm\engine\registration_request.cc:291] Registration response error message: DEPRECATED_ENDPOINT DevTools listening on ws://127.0.0.1:55642/devtools/browser/8394dc33-48c2-413e-8cc4-825cc4f6bf19 [22060:21460:0724/150714.248:ERROR:ui\gl\direct_composition_support.cc:615] AMD VideoProcessorGetOutputExtension failed: 鏈寚瀹氱殑閿欒 (0x80004005) <selenium.webdriver.remote.webelement.WebElement (session="b6163e89b6df112c2271ee47cab2c39a", element="f.60E66B6D23C3F095058ABEAE2BE4BE20.d.A0284DC44AE03878932D3B9173CE41AB.e.6")>有很多我不想要的
最新发布
07-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值