Python3之打印操作打印流重定向(下)

栏目: Python · 发布时间: 5年前

内容简介:当我们在Python的示例结果:再者

当我们在 Pythonprint 打印时,我们到底在使用什么? 其实print语句不过是Python简便使用的特性体验而已,其背后就是 sys.stdout 对象的简单接口,即我们也可以利用 sys.stdout 完成所有print打印行为,比如打印 Hello, world!

import sys
sys.stdout.write('Hello, world!')
复制代码

示例结果:

Hello, world!
复制代码

再者

import sys
s1 = 'Hello,'
s2 = 'world!'

print(s1, s2, end='\n')

sys.stdout.write(str(s1) + ' ' + str(s2) + '\n')
复制代码

示例结果:

Hello, world!
Hello, world!
复制代码

重定向输出流

我们已经知道print对sys.stdout的依赖,那么我们能否将sys.stdout赋值为标准输出流以外的东西,即将print的文字传送到其他地方。

import sys
s1 = 'Hello,'
s2 = 'world!'
sys.stdout = open('hello.txt', 'a')
...
print(s1, s2)
print(s2, s1)
复制代码

hello.text内容:

Hello, world!
world! Hello,
复制代码

可以看到标准输出流并没有打印任何信息,而需要被打印的内容全部被写入 hello.txt 文件中,这是为何? 因为我们把 sys.stdout 重设成已经打开的文件对象,重设之后,程序中所有的print都会将文字输出至文件 hello.txt 中,即进程中只有一个sys模块,通过这种方式就可以将所有的print进行重定向。当然我们也可以对单个print进行重定向,即上节介绍的print函数中的file参数完成重定向,这也是为何print定义file之后不会进行原始输出流的操作,即屏幕没有打印该次print函数的字符串信息。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Effective JavaScript

Effective JavaScript

David Herman / Addison-Wesley Professional / 2012-12-6 / USD 39.99

"It's uncommon to have a programming language wonk who can speak in such comfortable and friendly language as David does. His walk through the syntax and semantics of JavaScript is both charming and h......一起来看看 《Effective JavaScript》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具