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

本文详细介绍了Python 2.x中print语句与3.x中print函数的区别,包括默认输出格式、参数使用以及如何实现不换行输出。在2.x中,print使用默认的sys.stdout输出,而在3.x中,print变为函数,允许更灵活的end参数设置。通过示例代码,展示了如何在2.x中利用sys.stdout.write和flush方法实现不换行输出。
摘要由CSDN通过智能技术生成

匿名用户

1级

2013-07-27 回答

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

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

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

# coding=utf-8

import sys, os

list1Display = ['1', '2', '3']

list2Display = ['abc', 'def', 'rfs']

while list2Display != []:

# Prints the values to a stream, or to sys.stdout by default.

# Optional keyword arguments:

# file: a file-like object (stream); defaults to the current sys.stdout.

# sep:  string inserted between values, default a space.

# end:  string appended after the last value, default a newline.

# print 可以将值输出到指定的输出流(可以是文件句柄),若不指定,

# 则输出到stdout(标准输出)

# 一般我们使用的时候不加输出定向符“>>”到输出的file对象,本代码中对象是stdout

# 下面的print在stdout对象中每次输出两个值

print >> sys.stdout, list2Display.pop(), list1Display.pop()

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

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

# coding=utf-8

import sys, os

import time

for i in range( 100 ):

time.sleep( .5 )

sys.stdout.write( "File transfer progress :[%3d] percent complete!\r" % i )

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值