当前位置:首页 » 编程语言 » pythonstdout

pythonstdout

发布时间: 2022-06-09 06:14:49

python 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打印到命令行了

⑵ 求python 中sys.stdout.write 和 print >> sys.stdout的区别,越详细越好

下面应该可以解你的惑了:

print >> sys.stdout的形式就是print的一种默认输出格式,等于print "%VALUE%"

看下面的代码的英文注释,是print的默认帮助信息

#coding=utf-8
importsys,os

list1Display=['1','2','3']
list2Display=['abc','def','rfs']
whilelist2Display!=[]:
#Printsthevaluestoastream,ortosys.stdoutbydefault.
#Optionalkeywordarguments:
#file:afile-likeobject(stream);defaultstothecurrentsys.stdout.
#sep:stringinsertedbetweenvalues,defaultaspace.
#end:,defaultanewline.
#print可以将值输出到指定的输出流(可以是文件句柄),若不指定,
#则输出到stdout(标准输出)
#一般我们使用的时候不加输出定向符“>>”到输出的file对象,本代码中对象是stdout
#下面的print在stdout对象中每次输出两个值
print>>sys.stdout,list2Display.pop(),list1Display.pop()
os.system("pause")

上文中只演示了python2.x中的用法,2.x中的print无法指定end符号为其他值,默认会输出一个" ",也就是用一次必定换到下一行,到了3.x中print成为了一个真正意义上的函数,后来就可以任意指定end符号的值,你可以输出一次后末尾添加上任意你想要的值,而不是强制换行。



因此在2.x中若想实现输出不换行,只能直接调用stdout对象的write方法了,下面也是一个实例,因为stdout没有end这个符号这一说,输出不会换行,因此如果你想同一样输出多次,在需要输出的字符串对象里面加上" ",就可以回到行首了。

#coding=utf-8
importsys,os
importtime
foriinrange(100):
time.sleep(.5)
sys.stdout.write("Filetransferprogress:[%3d]percentcomplete! "%i)
sys.stdout.flush()

体会一下,将上面的" "拿掉试试看,是不是不换行而直接输出了?明白了么。很长一段时间内python都会停留在2.x的时代。

⑶ python标准输出重定向stdout.py的意思

sys.stdout 默认就是输出到控制台(console),print 默认的输出也是 sys.stdout,所以输出到控制台。
在 输入B 那,做了上下文切换with open
,也就是把默认的输出流指向到文件 out.log,
对应的代码是: sys.stdout = self.out_new,这里 out_new -> out.log,out_old = console
所以就print 指向文件,而不是控制台了

离开语句时,执行 sys.stdout = self.out_old => sys.stdout = console,还原原来的默认输入流

于是后面就输出到默认的控制

⑷ python sys.stdout.write 是怎么意思 怎么用

sys.stdout 是标准输出文件。write就是往这个文件写数据。
合起来就是打印数据到标准输出。

对初学者来说,和print功能一样。

⑸ 【关于python】请问sys.stdout.flush()是什么意思一般用在什么地方

python的stdout是有缓冲区的,给你个例子你就知道了

importtime
importsys

foriinrange(5):
printi,
#sys.stdout.flush()
time.sleep(1)

这个程序本意是每隔一秒输出一个数字,但是如果把这句话sys.stdout.flush()注释的话,你就只能等到程序执行完毕,屏幕上会一次性输出0,1,2,3,4。

如果你加上sys.stdout.flush(),刷新stdout,这样就能每隔一秒输出一个数字了。


可以用在网络程序中多线程程序,多个线程后台运行,同时要能在屏幕上实时看到输出信息。

⑹ python sys.stdout.buffer.write什么意思

sys是系统 stdout是标准输出 buffer是缓冲区 write是写 往标准输出的缓冲区中写东西

⑺ 请问一段Python代码stdout=-12代表什么意思

网页链接

⑻ python stdout 什么意思

指的是标本输出,对于Python,是指控制台输出,如下:

此外,你可以新建或者打开一个文件,将要输出的内容输出到文件内并保存,这是另一种输出到文件的输出。如:print("这是文件输出!", file = print.txt)

⑼ python2 中from sys import stdout什么意思

python从sys库中导入stdout方法。
在Python中,文件对象sys.stdin、sys.stdout和sys.stderr分别对应解释器的标准输入、标准输出和标准出错流

热点内容
qq空间访问量辅助 发布:2024-05-12 00:14:10 浏览:303
android小图标 发布:2024-05-11 23:53:21 浏览:918
拉伸与压缩实验 发布:2024-05-11 23:40:36 浏览:58
沙漠压缩装备 发布:2024-05-11 23:38:53 浏览:784
c语言函数数组 发布:2024-05-11 23:37:32 浏览:838
根据高斯的算法 发布:2024-05-11 23:30:06 浏览:687
画面上传 发布:2024-05-11 23:29:58 浏览:891
压缩机总图 发布:2024-05-11 23:28:53 浏览:211
当一台服务器有多个ip地址相同 发布:2024-05-11 23:27:49 浏览:623
测试服务器上的参数是如何传到操作设备上的 发布:2024-05-11 23:25:55 浏览:620