sys.stdout标准输出将控制台所有信息输出打印到文件

用于DL训练输出日志

#log.py
class Logger(object):
    def __init__(self,fileN ="Default.log"):
        self.terminal = sys.stdout
        self.log = open(fileN,"a")
 
    def write(self,message):
        self.terminal.write(message)
        self.log.write(message)
 
    def flush(self):
        pass
 
sys.stdout = Logger("D:\\1.txt") #这里我将Log输出到D盘
#下面所有的方法,只要控制台输出,都将写入"D:\\1.txt"
print(“sdfghjkl”)

print可以认为把console(命令行)作为一个板子,通过sys.stdout = console指定往console板子上写东西(console是默认的,也就是说你不修改要往哪儿写的话,就会默认往这写),在print 1的时候,就是告诉python,我要写1,然后python就会去sys.stdout所指定的板子里,也就是console(命令行)里写上 1。(标准错误输出也是同样的过程,你会发现当程序出错时,错误信息也会打印在console里面。)

其实只要一个对象具有write方法,就可以被当作“板子”,告诉sys.stdout去哪里写。
说道write方法,第一个想到的可能就是文件操作了。

f=open('log.txt','w')
__console__ = sys.stdout    #把默认的“板子” - 命令行做个备份,以便可以改回来

sys.stdout = f
print 1

sys.stdout = __console__    #恢复
print 2

上面的操作,通过sys.stdout = f 指定打印时的板子改成了 f。所以在使用print的时候,不再是把1打印在命令行里,而是写在了log.txt文件里面。

后面又把板子改成了命令行,此时print 2就又把2打印到命令行了

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: sys.stdout 是Python标准库中的一个模块,它提供了一个标准输出流,用于将文本输出控制台或其他标准输出设备。可以使用它来打印消息,调试程序或记录信息。例如,下面的代码将字符串“Hello, world!”输出控制台: ``` import sys sys.stdout.write("Hello, world!") ``` 输出: ``` Hello, world! ``` ### 回答2: sys.stdout是Python中的一个标准输出对象,它用于向标准输出流(通常是控制台打印数据。在Python中,我们可以使用print语句或者sys.stdout.write()方法将数据输出sys.stdoutsys.stdout具有许多实用的功能。首先,它可以通过重定向来改变输出的目标。我们可以使用sys.stdout = open('output.txt', 'w')将输出重定向到一个文件,这样所有的打印语句都会写入文件而不是打印控制台。 另外,sys.stdout还可以用于将输出捕获到一个字符串中,而不是直接打印出来。我们可以使用io.StringIO()创建一个字符串缓冲区,并将sys.stdout重定向到该缓冲区。这样,所有的打印语句都会被收集到缓冲区中,我们可以使用缓冲区的getvalue()方法获取输出结果。 除了标准输出,Python还有sys.stderr用于标准错误输出,它与sys.stdout类似,但用于打印错误和异常信息sys.stderr也可以进行重定向和捕获。 综上所述,sys.stdout是一个功能强大的用于输出数据的对象,它可以控制输出目标,捕获输出内容,并且与sys.stderr一起提供了一种简便的方法来处理标准输出和错误输出。在脚本编程和调试过程中,sys.stdout常常被用来进行输出和日志记录。 ### 回答3: sys.stdout是Python标准库中的一个对象,它代表标准输出流。标准输出是指程序向终端输出内容的通道。通过sys.stdout,我们可以将程序中的文本、数据等信息输出到终端。 sys.stdout对象是一个类似文件的对象,因此可以使用类似文件对象的方法进行读写操作。比如,可以使用write()方法将指定的内容写入到标准输出流中。 sys.stdout还可以通过重定向实现将输出重定向到其他地方,比如文件或者其他IO流。这在一些需要将标准输出保存到文件中的场景中非常有用。可以使用sys.stdout = file_object语句将标准输出重定向到指定的文件对象。 另外,sys.stdout还可以通过在命令行中使用重定向符号">"实现输出重定向。比如,python script.py > output.txt表示将script.py文件标准输出重定向到output.txt文件中。 总结一下,sys.stdout是Python中用于控制标准输出流的对象,在程序中输出文本、数据等信息时非常有用。可以通过其提供的方法进行读写操作,以及通过重定向实现将输出重定向到其他地方。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值