目标:
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 pythonimport syssys.stdout.write("stdout1")sys.stderr.write("stderr1")sys.stdout.write("stdout2")sys.stderr.write("stderr2")[root@localhost python]# python 1.pystderr1stderr2stdout1stdout2[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 pythonimport syssys.stdout.write("stdout1\n")sys.stderr.write("stderr1\n")sys.stdout.write("stdout2\n")sys.stderr.write("stderr2\n")[root@localhost python]# python 1.pystdout1stderr1stdout2stderr2 ②执行脚本加 -u 选项
[root@localhost python]# cat 1.py #!/usr/bin/env pythonimport syssys.stdout.write("stdout1")sys.stderr.write("stderr1")sys.stdout.write("stdout2")sys.stderr.write("stderr2")[root@localhost python]# python 1.pystdout1stderr1stdout2stderr2[root@localhost python]# ③调用sys.stdout.flush
[root@localhost python]# cat 1.py #!/usr/bin/env pythonimport syssys.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.pystdout1stderr1stdout2stderr2[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,timefor i in xrange(10): sys.stdout.write('%s\r' % i) sys.stdout.flush() time.sleep(0.2)#打印换行printfor 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.py99