python 之sys.stdout小记

标准输出(sys.stdout)——>print(打印)

标准输入(sys.stdin)——>input(接收输入)

标准错误输出和标准输出类似也是print(打印)。

python最基本的操作 - 打印:

print 1

其效果是把 1 写在console(命令行)里面让你看。

也可以理解为:把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‘)

想上面那样声明一个文件对象 f,此文件对象就拥有了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打印到命令行了

时间: 2024-10-07 19:26:38

python 之sys.stdout小记的相关文章

Python的sys.stdout、sys.stdin重定向

Python的sys.stdout.sys.stdin重定向 转自:http://www.cnblogs.com/turtle-fly/p/3280519.html 本文环境:Python 2.7 使用 print obj 而非 print(obj) 一些背景 sys.stdout 与 print 当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n') print 将你需要的内容打印到了控制台,然后追加了一个换行符

python print · sys.stdout · sys.stderr

参考文档 Python重定向标准输入.标准输出和标准错误 http://blog.csdn.net/lanbing510/article/details/8487997 python重定向sys.stdin.sys.stdout和sys.stderr http://www.cnblogs.com/guyuyuan/p/6885448.html 1.print print obj 事实上是调用了sys.stdout.write(obj+'\n'),注意多了一个换行符 1a. print在pytho

Python 标准输出 sys.stdout 重定向

使用 print obj 而非 print(obj) 一些背景 sys.stdout 与 print 当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n') print 将你需要的内容打印到了控制台,然后追加了一个换行符 print 会调用 sys.stdout 的 write 方法 以下两行在事实上等价: sys.stdout.write('hello'+'\n') print 'hello' sys.stdin

python的sys.stdout重定向

一些背景 sys.stdout 与 print 当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n') print 将你需要的内容打印到了控制台,然后追加了一个换行符 print 会调用 sys.stdout 的 write 方法 以下两行在事实上等价: sys.stdout.write('hello'+'\n') print 'hello' sys.stdin 与 raw_input 当我们用 raw_input(

python 中sys.stdout.write 和 print >> sys.stdout的区别

print >> sys.stdout的形式就是print的一种默认输出格式,等于print "%VALUE%" 看下面的代码的英文注释,是print的默认帮助信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # coding=utf-8 import sys, os list1Display = ['1', '2', '3'] list2Display = ['abc', 'def', 'rfs'] while list2Displ

python中sys.stdout、sys.stdin

1.如果需要更好的控制输出,而print不能满足需求,sys.stdout,sys.stdin,sys.stderr就是你需要的. 2.sys.stdout与print: 在python中调用print时,事实上调用了sys.stdout.write(obj+'\n') print 将需要的内容打印到控制台,然后追加一个换行符 以下两行代码等价: sys.stdout.write('hello' + '\n') print('hello') 3.sys.stdin与input sys.stdin

Python模块-sys模块

sys.version        获取Python解释程序的版本信息 >>> sys.version '2.7.12 (default, Dec 4 2017, 14:50:18) \n[GCC 5.4.0 20160609]' sys.platform       返回操作系统平台名称 >>> sys.platform 'linux2' sys.getrecursionlimit() #获取最大递归层数 >>> sys.getrecursionl

python重定向sys.stdin、sys.stdout和sys.stderr

标准输入.标准输出和错误输出. 标准输入:一般是键盘.stdin对象为解释器提供输入字符流,一般使用raw_input()和input()函数. 例如:让用户输入信息(Python环境为2.x): 1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 import sys 4 name = raw_input("Please input your name: ") 5 print name 6 7 # python test.py 8 Plea

Python标准库:内置函数print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

本函数是实现对象以字符串表示的方式格式化输出到流文件对象file里.其中所有非关键字参数都按str()方式进行转换为字符串输出,关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符:关键字参数end是输出结束时的字符,默认是换行符\n:关键字参数file是定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件:参数flush是立即把内容输出到流文件,不作缓存. 例子: #print() print(1, 2, 3, sep = ',', end =