目标:

  1.使用sys.stdout.write输入0-9数字

  2.使用sys.stderr.write输出0-9数字

  3.使用两种方式输出0-9,显示0变化到9的过程

1.使用sys.stdout.write和sys.stderr.write打印

[root@localhost python]# cat 1.py
#!/usr/bin/env python import sys sys.stdout.write("stdout1")
sys.stderr.write("stderr1")
sys.stdout.write("stdout2")
sys.stderr.write("stderr2")
[root@localhost python]# python 1.py
stderr1stderr2stdout1stdout2[root@localhost python]#
提示:使用sys.stdout.write方式输出,顺序发生变化,输出2个stderr,再输出2个stdout,这是因为sys.stdout.write输出的方式有缓存,而sys.stderr.write输出的方式无缓存。
sys.stdout.write去掉缓存的方法:
  1.添加换行符
  2.执行脚本时添加 -u 选项
  3.调用sys.stdout.flush
①添加换行符'\n'
[root@localhost python]# cat 1.py
#!/usr/bin/env python import sys sys.stdout.write("stdout1\n")
sys.stderr.write("stderr1\n")
sys.stdout.write("stdout2\n")
sys.stderr.write("stderr2\n")
[root@localhost python]# python 1.py
stdout1
stderr1
stdout2
stderr2
②执行脚本加 -u 选项
[root@localhost python]# cat 1.py
#!/usr/bin/env python import sys sys.stdout.write("stdout1")
sys.stderr.write("stderr1")
sys.stdout.write("stdout2")
sys.stderr.write("stderr2")
[root@localhost python]# python 1.py
stdout1stderr1stdout2stderr2[root@localhost python]# ③调用sys.stdout.flush
[root@localhost python]# cat 1.py
#!/usr/bin/env python import sys sys.stdout.write("stdout1")
sys.stdout.flush()
sys.stderr.write("stderr1")
sys.stdout.write("stdout2")
sys.stdout.flush()
sys.stderr.write("stderr2")
[root@localhost python]# python 1.py
stdout1stderr1stdout2stderr2[root@localhost python]#

2.使用sys.stdout.write和sys.stderr.write输出0-9的变化过程

代码如下:

[root@localhost python]# cat std_write.py
#!/usr/bin/env python
# -*- coding: utf-8 -*- import sys,time for i in xrange(10):
sys.stdout.write('%s\r' % i)
sys.stdout.flush()
time.sleep(0.2)
#打印换行
print for i in xrange(10):
sys.stderr.write('%s\r' % i)
time.sleep(0.2)
print

3.运行代码,测试效果,会看到0一直变化到9,最后显示9结束。

[root@localhost python]# python std_write.py
9
9

sys.stdout.write与sys.sterr.write(一)的更多相关文章

  1. sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码

    不论使用urllib还是使用requests库经常会遇到中文编码错误的问题,我就经常遇到,因为python安装在windows平台上,cmd的默认编码为GBK,所以在cmd中显示中文时会经常提示gbk ...

  2. python3.x设置默认编码(sys.stdout.encoding和sys.defaultencoding)

    查了一会资料得出的结论是如果你用的是python3.x,那么就最好别去设置sys.defaultencoding或者sys.stdout.encoding记住在需要编码的时候用encode,解码的时候 ...

  3. sys.stdout.write与sys.sterr.write(三)

    目标: 1.使用sys.stdout.write模拟"|"的顺时针变化- \ | / 2.使用sys.stderr.write模拟"|"的顺时针变化- \ | ...

  4. sys.stdout.write与sys.sterr.write(二)

    目标: 1.使用sys.stdout.write模拟火车道轨迹变化过程 2.使用sys.stderr.write模拟火车道轨迹变化过程 1.sys.stdout.write模拟火车道轨迹变化 代码如下 ...

  5. Python之print(args)与sys.stdout.write(string)使用总结

    一.sys.stdout.write(string) import sys; # sys.stdout.write(): # 1.默认不换行 # 2.参数必须是字符串 # demo 01 x = &q ...

  6. python sys.stdin、sys.stdout和sys.stderr

    学习并转载自  https://www.cnblogs.com/guyuyuan/p/6885448.html 标准输入:一般是键盘.stdin对象为解释器提供输入字符流,一般使用raw_input( ...

  7. 【python】print · sys.stdout · sys.stderr

    参考文档 Python重定向标准输入.标准输出和标准错误 http://blog.csdn.net/lanbing510/article/details/8487997 python重定向sys.st ...

  8. PyQt(Python+Qt)学习随笔:print标准输出sys.stdout以及stderr重定向QTextBrowser等图形界面对象

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 <在Python实现print标准输出sys.stdout.st ...

  9. 在Python实现print标准输出sys.stdout、stderr重定向及捕获的简单办法

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 Python中的标准输出和错误输出由sys模块的stdout.stde ...

随机推荐

  1. 局部加权回归、欠拟合、过拟合(Locally Weighted Linear Regression、Underfitting、Overfitting)

    欠拟合.过拟合 如下图中三个拟合模型.第一个是一个线性模型,对训练数据拟合不够好,损失函数取值较大.如图中第二个模型,如果我们在线性模型上加一个新特征项,拟合结果就会好一些.图中第三个是一个包含5阶多 ...

  2. tensorflow添加自定义的auc计算operator

    tensorflow可以很方便的添加用户自定义的operator(如果不添加也可以采用sklearn的auc计算函数或者自己写一个 但是会在python执行,这里希望在graph中也就是c++端执行这 ...

  3. 网络知识学习4---(DNS的作用)

    1.DNS 简介 DNS是域名解析协议 在互联网中通过IP 地址来进行通信.但是IP 地址的表示形式是数字,很难进行记忆(比如116.213.120.232),所以为每个 IP取一个人类更易记忆的域名 ...

  4. 7.Java中的字符串

    1.String的特性 特性一:不可变性 String s=new String("yangyun") s=s.toUpperCase(); 这里的s,s占用的空间是不一样的(地址 ...

  5. Android常用元件

    本文来源于 http://blog.csdn.net/wxhlinux/article/details/8601170#comments 1.4  Android應用程式元件1.4.1  Activi ...

  6. 算术表达式解析(第二版) C++11版

    //一个简单的计算器代码,主要用来练习C++11新标准的编程技术和stl应用 1 #include<iostream> #include<stack> #include< ...

  7. Leetcode Gray Code

    题目的意思就是将十进制转换成格雷码 首先将二进制转换成格雷码 根据此图可以看出二进制的第i和第i+1位异或为格雷码的第i+1位,对于给定的十进制数x,其(x>>1)相当于二进制向右移动一位 ...

  8. ACM: NBUT 1105 多连块拼图 - 水题 - 模拟

    NBUT 1105  多连块拼图 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:  Practice  Appoint ...

  9. 【BZOJ】3437: 小P的牧场

    题意 n个点,需要再一些点建立控制站,如果在第\(i\)个建站,贡献为\(a[i]\).假设前一个站为\(j<i\),则\([j+1, i]\)的点的贡献是\(\sum_{k=j+1}^{i} ...

  10. 自己封装一个Log模块

    Unity自己有log系统,为什么要自己封装一个 1.不好用,只能在pc上记录log文件,移动平台是没有的 2.在开发时期的log,不想在正式版里面出现.没有一个统一的开关来控制是不是要显示log,要 ...