sys.stdout.write和print和sys.stdout.flush
2018-06-18 02:02:29来源:未知 阅读 ()
1. 先看下官方文档
1 """ 2 sys.stdout.write(string) 3 Write string to stream. 4 Returns the number of characters written (which is always equal to the length of the string). 5 6 print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) 7 Prints the values to a stream, or to sys.stdout by default. 8 9 Optional keyword arguments: 10 file: a file-like object (stream); defaults to the current sys.stdout. 11 sep: string inserted between values, default a space. 12 end: string appended after the last value, default a newline. 13 flush: whether to forcibly flush the stream. 14 """
可以看出
①sys.stdout.write是将str写到流,原封不动,不会像print那样默认end='\n'
②sys.stdout.write只能输出一个str,而print能输出多个str,且默认sep=' '(一个空格)
③print,默认flush=False.
④print还可以直接把值写到file中
1 import sys 2 f = open('test.txt', 'w') 3 print('print write into file', file=f) 4 f.close()
2. sys.stdout.flush()
1 flush() 2 method of _io.TextIOWrapper instance 3 Flush write buffers, if applicable. 4 5 This is not implemented for read-only and non-blocking streams.
flush是刷新的意思,在print和sys.stdout.write输出时是有一个缓冲区的。
比如要向文件里输出字符串,是先写进内存(因为print默认flush=False,也没有手动执行flush的话),在close文件之前直接打开文件是没有东西的,如果执行一个flush就有了。
1 import time 2 import sys 3 4 for i in range(5): 5 print(i) 6 sys.stdout.flush() 7 time.sleep(1)
在终端执行上面代码,会一秒输出一个数字。然而如果注释掉flush,就会在5秒后一次输出01234
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:selenium 基础(一)
下一篇:python的类和类的单继承
- 利用切片赋值为空串达到删除列表值的目的 2019-07-24
- 切片 及 range 点睛回炉 2019-07-24
- python 对Unicode解码 2019-07-24
- python学习-10 运算符1 2019-06-14
- 断言 2019-06-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash