python 中sys.stdout.write 和 print >> sys.stdout的区别(转)
下面应该可以解你的惑了:
print >> sys.stdout的形式就是print的一种默认输出格式,等于print "%VALUE%"
看下面的代码的英文注释,是print的默认帮助信息
# coding=utf-8
import sys, os list1Display = ['', '', '']
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符号的值,你可以输出一次后末尾添加上任意你想要的值,而不是强制换行。
# 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()
因此在2.x中若想实现输出不换行,只能直接调用stdout对象的write方法了,下面也是一个实例,因为stdout没有end这个符号这一说,输出不会换行,因此如果你想同一样输出多次,在需要输出的字符串对象里面加上"\r",就可以回到行首了。
体会一下,将上面的"\r"拿掉试试看,是不是不换行而直接输出了?明白了么。很长一段时间内python都会停留在2.x的时代。
python 中sys.stdout.write 和 print >> sys.stdout的区别(转)的更多相关文章
- Python中内置数据类型list,tuple,dict,set的区别和用法
Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...
- Python中列表,元组,字典,集合的区别
参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...
- Python中的xxx+=xxx和xxx=xxx+xxx一些区别及执行过程
预知小知识: Python中的变量与其他语言稍有差异,如a = 10并不是直接在内存中创建一个变量a其值为10,而是在内存中创建一个a这个a指向这个10,在Python中所有牵扯到等号的均不是值赋值, ...
- Python中read()、readline()和readlines()三者间的区别和用法
2019-01-15 10:48:43 前言 众所周知在python中读取文件常用的三种方法:read(),readline(),readlines(),今天看项目是又忘记他们的区别了.以前看书的时候 ...
- Python中的None与Null(空字符)的区别
参考自 Python中的None与空字符(NULL)的区别 - CSDN博客 http://blog.csdn.net/crisschan/article/details/70312764 首先了解p ...
- Python中的 x+=x 与 x = x + x的区别
对于Python中的可变数据类型(列表,字典)来说,+= 和 ..=..+..是不同的 加等是直接在变量的值上面进行操作,会修改了原来变量的值 先等后加会重新分配一个内存空间,不会再原有的变量值上面进 ...
- 关于Python中的可变对象与不可变对象的区别(转)
转自:https://blog.csdn.net/rookinzhang/article/details/80259857 Python中可变对象和不可变对象:https://www.cnblogs. ...
- python中os.sep的作用以及sys._getframe().f_back.f_code.co_xxx的含义
https://blog.csdn.net/gufenchen/article/details/98338552
- python中 urllib, urllib2, httplib, httplib2 几个库的区别
转载 摘要: 只用 python3, 只用 urllib 若只使用python3.X, 下面可以不看了, 记住有个urllib的库就行了 python2.X 有这些库名可用: urllib, urll ...
随机推荐
- 【boost】使用lambda表达式和generate_n生成顺序序列
程序中经常用到顺序序列(0,1,2,3,4,5,6.....),一直羡慕python有range这样的函数,而C++中通常只有用循环来处理这种初始化. 现在,结合boost库lambda(虽然差C++ ...
- ionic 相关
基本操作 $cordova platform update android@5.0.0 $ npm install -g cordova ionic $ ionic start myApp tabs ...
- css3 钟表
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- js冲突
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(//"~/Scripts/modernizr-2.6.2 ...
- MVC缓存的使用
MVC3缓存之一:使用页面缓存 在MVC3中要如果要启用页面缓存,在页面对应的Action前面加上一个OutputCache属性即可. 我们建一个Demo来测试一下,在此Demo中,在View的Hom ...
- 转】从源代码剖析Mahout推荐引擎
原博文出自于: http://blog.fens.me/mahout-recommend-engine/ 感谢! 从源代码剖析Mahout推荐引擎 Hadoop家族系列文章,主要介绍Hadoop家族产 ...
- C# Keynote
[C# Keynote] 1. Main 方法必须包含在一个类内,参数类型.返回值类型可以有多种变化. // Hello1.cs public class Hello1 { public static ...
- C++11静态assert
[C++11静态assert] C++11新的关键字static_assert可以解决模板中的状态检察. 声明采取以下的形式: 这里有一些如何使用static_assert的例子: 当常数表达式值为f ...
- POJ 1066 Treasure Hunt(线段相交判断)
Treasure Hunt Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4797 Accepted: 1998 Des ...
- 做 fzu oj 1106 题目学到的
题目如下 这道题的意识就是给一个数问是否可以又阶乘之和构成,而难点主要是在于如果是7的话就是1!+3!,并不是单纯的从1的阶乘开始加,而是没顺序的,所以这题就得用到递归. (大概就是函数自己调用函数自 ...