目标:

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

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

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

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

  1. [root@localhost python]# cat 1.py
    #!/usr/bin/env python
  2.  
  3. import sys
  4.  
  5. sys.stdout.write("stdout1")
  6. sys.stderr.write("stderr1")
  7. sys.stdout.write("stdout2")
  8. sys.stderr.write("stderr2")
  9. [root@localhost python]# python 1.py
  10. stderr1stderr2stdout1stdout2[root@localhost python]#
    提示:使用sys.stdout.write方式输出,顺序发生变化,输出2stderr,再输出2stdout,这是因为sys.stdout.write输出的方式有缓存,而sys.stderr.write输出的方式无缓存。
    sys.stdout.write去掉缓存的方法:
      1.添加换行符
      2.执行脚本时添加 -u 选项
      3.调用sys.stdout.flush
    ①添加换行符'\n'
  11. [root@localhost python]# cat 1.py
  12. #!/usr/bin/env python
  13.  
  14. import sys
  15.  
  16. sys.stdout.write("stdout1\n")
  17. sys.stderr.write("stderr1\n")
  18. sys.stdout.write("stdout2\n")
  19. sys.stderr.write("stderr2\n")
  20. [root@localhost python]# python 1.py
  21. stdout1
  22. stderr1
  23. stdout2
  24. stderr2
    ②执行脚本加 -u 选项
  1. [root@localhost python]# cat 1.py
    #!/usr/bin/env python
  2.  
  3. import sys
  4.  
  5. sys.stdout.write("stdout1")
  6. sys.stderr.write("stderr1")
  7. sys.stdout.write("stdout2")
  8. sys.stderr.write("stderr2")
  9. [root@localhost python]# python 1.py
  10. stdout1stderr1stdout2stderr2[root@localhost python]#
  11.  
  12. ③调用sys.stdout.flush
  1. [root@localhost python]# cat 1.py
    #!/usr/bin/env python
  2.  
  3. import sys
  4.  
  5. sys.stdout.write("stdout1")
    sys.stdout.flush()
  6. sys.stderr.write("stderr1")
  7. sys.stdout.write("stdout2")
    sys.stdout.flush()
  8. sys.stderr.write("stderr2")
  9. [root@localhost python]# python 1.py
  10. stdout1stderr1stdout2stderr2[root@localhost python]#

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

代码如下:

  1. [root@localhost python]# cat std_write.py
  2. #!/usr/bin/env python
  3. # -*- coding: utf-8 -*-
  4.  
  5. import sys,time
  6.  
  7. for i in xrange(10):
  8. sys.stdout.write('%s\r' % i)
  9. sys.stdout.flush()
  10. time.sleep(0.2)
  11. #打印换行
  12. print
  13.  
  14. for i in xrange(10):
  15. sys.stderr.write('%s\r' % i)
  16. time.sleep(0.2)
  17. print

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

  1. [root@localhost python]# python std_write.py
  2. 9
  3. 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. 配置使用EF常见的一些问题及解决方案

    转自http://www.2cto.com/database/201511/449573.html 提示未注册,找不到驱动程序 No Entity Framework provider found f ...

  2. linux允许80端口通过

    yum重装 http://www.07net01.com/storage_networking/Red_Hat_6_2_64ruheshiyongCentosdeYUMyuangengxinfangf ...

  3. FP-growth高效频繁项集发现

    FP-growth 算法优缺点: 优点:一般快于Apriori 缺点:实现比较困难,在某些数据上性能下降 适用数据类型:标称型数据 算法思想: FP-growth算法是用来解决频繁项集发现问题的,这个 ...

  4. netfilter的钩子——数据包在内核态得捕获、修改和转发

    转发:http://blog.csdn.net/stonesharp/article/details/27091391 数据包在内核态得捕获.修改和转发(基于 netfilter)    忙活了好几天 ...

  5. MyBatis - MyBatis使用log4j2显示sql和结果集

    mybatis-config.xml <settings> <setting name="logImpl" value="LOG4J2" /& ...

  6. 分配问题与Hungarian算法

    分配问题与Hungarian算法 分配问题 指派问题 匈牙利算法 匈牙利方法是一种能够在多项式时间内解决分配问题(assignment problem)的组合优化算法.它由Harold Kuhn 与1 ...

  7. ACM:SCU 4437 Carries - 水题

    SCU 4437  Carries Time Limit:0MS     Memory Limit:0KB     64bit IO Format:%lld & %llu  Practice  ...

  8. Android -- FlipViewController的使用(jar文件)

    1.  此控件的作用 类似于翻书一样,可以上下翻页的控件, 2.  效果图

  9. java.lang.NoClassDefFoundError:

    异常信息:十一月 10, 2016 5:20:15 下午 org.apache.catalina.core.StandardContext loadOnStartup严重: Servlet /mgr ...

  10. 启动mysql服务 报1067 错误

    启动mysql 报1067 错误         一般报1067错误,先看一下data/my.ini配置文件 中的路径 datadir ,log-bin ,log-error 报1067错误原因 多种 ...