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

pythonsysstdout

发布时间: 2025-07-14 16:15:29

A. 求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的时代。

热点内容
dbscan聚类python 发布:2025-07-14 21:36:09 浏览:30
海岛图怎么配置枪 发布:2025-07-14 21:35:07 浏览:323
安卓备忘录怎么转苹果去 发布:2025-07-14 20:57:16 浏览:114
加密货币app 发布:2025-07-14 20:46:57 浏览:554
医院防汛演练方案与脚本 发布:2025-07-14 20:41:11 浏览:778
公网ip做域服务器地址 发布:2025-07-14 20:40:13 浏览:52
php获取几 发布:2025-07-14 20:22:20 浏览:376
旧安卓如何刷入最新安卓 发布:2025-07-14 20:16:14 浏览:763
服务器或网络不给力是什么意思 发布:2025-07-14 20:15:36 浏览:318
爬网站数据库 发布:2025-07-14 20:15:20 浏览:520