在处理程序打进度条时,希望不换行显示进度,可以使用sys.stdout相关函数来进行处理。

  1.print 输出不换行

  首先可以使用print函数来整体输入,利用,结尾就可以在同一行内显示:

  # python=2.7,py3.x print要加括号

  for i in range(10):

  print i,

  >>> 0 1 2 3 4 5 6 7 8 9

  但是这种方法只能在一行里连续输出,并且只能在换行时候才显示出来。

  2.sys.stdout进行实时显示

  为了进行实时显示,我们需要利用sys.stdout来实现。

  import sys

  for i in range(10):

  sys.stdout.write(str(i))

  sys.stdout.flush()

  # 输出连续的字符

  >>> 0123456789

  # 可以利用这个做一个进度条:

  sys.stdout.write('Processing>>>')

  for i in range(10):

  sys.stdout.write('*')

  sys.stdout.flush()

  >>> Processing>>>**********

  但是这种方法输出的是不断累加的,进度条会不断增加。如果想要输出百分数不断刷新精度就需要利用额外的方法了。

  3.回车或退格符的使用

  stdout.write将需要写的内容放到缓存里,而后flush来进行刷新。为了不换行不叠加的显示前文的信息,我们可以利用\r将光标移到行首,然后将前面的输出覆盖即可显示新的内容:

  for i in range(10):

  sys.stdout.write(str(i)+'\r')

  sys.stdout.flush()

  time.sleep(0.5)

  # 将依次输出0~9十个数字

  >>> 9

  # 我们可以输出对应的百分数进度

  for i in range(10):

  sys.stdout.write(str(i+1/1*10)+'%\r')

  sys.stdout.flush()

  time.sleep(0.5)

  # 将依次输出10%~100%

  >>> %100

  # 稍微改造一下就是很好看的进度条

  for i in range(10):

  bar_str = i * '>'

  sys.stdout.write(str((i+1)/1*10)+'%' + bar_str + '\r')

  sys.stdout.flush()

  time.sleep(0.5)郑州妇科医院哪家好 http://www.zzkedayy.com/

  # 可以直接copy上面的代码就可以输出下面的进度条样式,在同一行中刷新百分数,延长进度符号

  >>> 100%>>>>>>>>>

  除了使用\r外,还可以使用退格符号\b在进度条后进行刷新:

  for i in range(10):

  sys.stdout.write('*->'+ '\b\b') #为了不断加长中间的*,需要先将->删除再写入

  sys.stdout.flush()

  time.sleep(0.5)

  # 带箭头的进度条

  >>> **********->

  # 最后把百分数也加上

  for i in range(10):

  bar_str = i * '*' + '->'

  sys.stdout.write(str((i+1)/1*10)+'%' + bar_str + '\b\b\r')

  sys.stdout.flush()

  time.sleep(0.5)

  # 刷新百分数和逐渐增长的进度条:

  >>> 100%*********->

python 之 sys.stdout输出不换行的更多相关文章

  1. python之sys.stdout、sys.stdin以及设置打印到日志文件等

    转自:https://www.cnblogs.com/BigFishFly/p/6622784.html python之sys.stdout.sys.stdin 转自:http://www.cnblo ...

  2. python中如何使输出不换行

    1.在python 2.x版本中,使用“,”(不含双引号)可使输出不换行,例如 2.python 3.x版本输出不换行格式如下 print(x, end="")    end=&q ...

  3. Python 为什么sys.stdout.write 输出时后面总跟一个数字

    sys.stdout 是标准输出文件.write就是往这个文件写数据. 合起来就是打印数据到标准输出 因为-在交互模式下会输出函数返回值,而write会返回输出的字符数量.在命令行里不会显示

  4. python 中sys.stdout.write 和 print >> sys.stdout的区别(转)

    下面应该可以解你的惑了: print >> sys.stdout的形式就是print的一种默认输出格式,等于print "%VALUE%" 看下面的代码的英文注释,是p ...

  5. Python 标准输出 sys.stdout 重定向(转)

    add by zhj: 其实很少使用sys.stdout,之前django的manage.py命令的源码中使用了sys.stdout和sys.stderr,所以专门查了一下 这两个命令与print的区 ...

  6. python之sys.stdout、sys.stdin

    转自:http://www.cnblogs.com/turtle-fly/p/3280519.html 本文环境:Python 2.7  使用 print obj 而非 print(obj) sys. ...

  7. Python 标准输出 sys.stdout 重定向

    本文环境:Python 2.7 使用 print obj 而非 print(obj) 一些背景 sys.stdout 与 print 当我们在 Python 中打印对象调用 print obj 时候, ...

  8. python中sys.stdout、sys.stdin

    如果需要更好的控制输出,而print不能满足需求,sys.stdout,sys.stdin,sys.stderr就是你需要的. 1. sys.stdout与print: 在python中调用print ...

  9. python(5)- sys.stdout()实现进度条

    1. 使用\r , 让其始终在行首输出,实现进度条 import sys, time ''' 使用\r 来实现进度条的效果,\r 是光标移到行首但不换行. 假设文件大小为60,一下下载1, 下载到60 ...

随机推荐

  1. AtCoder Grand Contest 038题解

    好久没更了 写点东西吧= = A 01Matrix 简单构造 左上角和右下角染成1其他染成0即可 #include<bits/stdc++.h> #define ll long long ...

  2. ABP 依赖报错

    一般是自己写的Service 没有实现IApplicationService,和没有继承ApplicationService

  3. selenium--多窗口操作

    前戏 想一想,我们为什么要获取窗口句柄呢?有什么用呢? 来假设一下,我们打开了一个网站,点击了一个按钮,新打开了一个页面,我们在新页面操作完成之后,需要回到原来的页面继续操作,这时候你如果继续操作原来 ...

  4. NOIp初赛题目整理

    NOIp初赛题目整理 这个 blog 用来整理扶苏准备第一轮 csp 时所做的与 csp 没 有 关 系 的历年 noip-J/S 初赛题目,记录了一些我从不知道的细碎知识点,还有一些憨憨题目,不定期 ...

  5. 遍历List 中 Map 的值

    实现思路: List list = new ArrayList(); Map map = new HashMap(); ;i<list.size;i++){ map=list.get(i); f ...

  6. java 中 public default protected private 的区别

    对于继承自己的class,父类可以认为他们都是自己的子女,而对于和自己都在同一个目录下的class,可以认为都是自己的朋友. public:对所有用户开发,所有用户都可以直接调用 private:自己 ...

  7. Java 并发系列之一:java 并发体系

    1.  java 并发机制的底层原理实现 1.1 volatile 1.2 synchronized 1.3 原子操作 2. java 内存模型(JMM) 3. java并发基础线程 4. java ...

  8. Spring Security教程之退出登录logout(十)

    要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain.当我们指定 ...

  9. [技术博客]海报图片生成——小程序canvas画布

    目录 背景介绍 canvas简介 代码实现 难点讲解 圆角矩形裁剪失败之PS的妙用 编码不要过硬 对过长的文字进行截取 真机首次生成时字体不对 drawImage只能使用本地图片 背景介绍 目标:利用 ...

  10. gcc O2优化选项对内嵌汇编以及函数递归调用的影响

    学习和使用c这些年来,很多方面都未深入研究过,就如脱离了IDE后,我可能连编译一个c文件的命令都写不出来. 最近需要在c中内嵌汇编解决问题,参考网上相关的资料写了一段汇编代码,在测试的时候时好时坏,找 ...