先贴出单行刷新实现的进度条:

对于控制台的单行刷新,比较简单,先直接贴出代码:

1 strarrs = [‘/‘,‘|‘,‘\\‘]2 for i in range(15):3 sys.stdout.write(strarrs[i % 3]+‘{}/15:‘.format(i+1)+‘#‘ * i+‘\r‘)4 sys.stdout.flush()5 time.sleep(1)

对于单行刷新以及坑

1.print是对sys.stdout.write的友好封装,利用sys.stdout.write把数据输出到标准输出,貌似也可用print来做,这里没有深入研究

2.一定要在write()里面加入 ‘\r‘,或者是‘\b‘等转义字符,其中python转义字符表如下:

转义字符描述

\(在行尾时)

续行符

\\

反斜杠符号

\‘

单引号

\"

双引号

\a

响铃

\b

退格(Backspace)

\e

转义

\000

\n

换行

\v

纵向制表符

\t

横向制表符

\r

回车

\f

换页

\oyy

八进制数yy代表的字符,例如:\o12代表换行

\xyy

十进制数yy代表的字符,例如:\x0a代表换行

\other

其它的字符以普通格式输出

这就相当于是回车到了输出开头,然后,重新写,在刷新!

如此,一个简单的进度条就实现了!

接下来说一说,多行的刷新问题:

多行刷新,就不能简单的使用输入输出了,应该使用的是一个curses的库,这个库,是以前用c写的库,如果熟悉c下,curses库的使用的话,用python会上手很快.

但是我之前并没有接触罗..一点一点看罗- - ,还有一点就是这个库,现在好像貌似只能在linux下使用,windows不能使用,mac不太清楚,windows下貌似是有别的解决方案

上效果图:

大部分实现curses,的程序模式都是基于以下的代码

stdscr=curses.initscr()#一些常用设置

curses.noecho()

curses.cbreak()

stdscr.keypad(1)#以下写监听按键的代码或者loop代码等...

....#关闭之前的操作

stdscr.keypad(0)

curses.echo()

curses.nocbreak()

curses.endwin()

主要的程序逻辑都在...中,下面直接贴出代码:

importcursesimporttimeimportosimportrandom

stdscr=curses.initscr()

curses.noecho()#不输出- -

curses.cbreak() #立刻读取:暂不清楚- -

stdscr.keypad(1) #开启keypad

stdscr.box()

width=os.get_terminal_size().columns

height=os.get_terminal_size().lines

c_y= height//2 - 1c_x= width//2 - 10stdscr.addstr(c_y+5,c_x,‘press C to continue‘,curses.A_REVERSE)whileTrue:

c=stdscr.getch()if c == ord(‘c‘) or c == ord(‘C‘):breakzh_= ‘1234567890-qwertyuiopasdfghjklzxcvbnm,[;l,]/~!@#$%^&*()_+}"?{:><}"‘‘;‘

whileTrue:for linei in range(1,width-1):for linej in range(1,height-1):if linej ==c_y:if linei <= 5 or linei+6 >=width:

stdscr.addstr(linej,linei,‘$‘)else:

stdscr.addstr(linej,c_x,time.strftime(‘%Y-%m-%d %H:%M:%S‘),curses.A_BOLD)else:

randominx= random.randint(0,len(zh_)-1)

stdscr.addstr(linej,linei,zh_[randominx])

stdscr.move(c_y,c_x)

stdscr.refresh()

time.sleep(1)

curses.endwin()

这样,一个多行刷新的demo就完成了.

原文地址:https://www.cnblogs.com/whyaza/p/9462831.html

python续行_python 控制台单行刷新,多行刷新相关推荐

  1. python删除行_python 删除文件中指定行

    原博文 2017-03-20 19:18 − 代码适用情况:xml文件,循环出现某几行,根据这几行中的某个字段删掉这几行这段代码的作用删除jenkins中config.xml中在自动生成pipline ...

  2. python续行_python基础(变量,续行符,is,round,if,字符串,日期,数学,参数)...

    1 #coding=utf-8 2 #print函数 3 print 3, -1, 3.14159, -2.8 4 #type函数 5 print type(3), type(3.14159), ty ...

  3. python续行_python中如何优雅续行和换行

    原博文 2017-07-16 11:50 − http://note.youdao.com/noteshare?id=8dbcb93991a89a6cfcd95580ed2198f0... 0 138 ...

  4. python中单行注释_Python中的单行、多行、中文注释方法

    Python中的单行.多行.中文注释方法 一.python单行注释符号(#) python中单行注释采用 #开头 示例:#this is a comment 二.批量.多行注释符号 多行注释是用三引号 ...

  5. python续行符是啥_python续行符

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! + 作为续行符时,在行尾使用了后,可以换行继续书写内容+ n 代表一个换行符+ ...

  6. python运行调出控制台_python.exe 和 pythonw.exe 的区别

    (区分.py..pyw..pyc 文件) 最近也在学习python,针对python中的一些问题做下记录,希望大家共同成长: Windows系统搭建好Python的环境后,进入Python的安装目录, ...

  7. python运行调出控制台_python控制台怎么打开

    如何使用Python交互式控制台 进入互动控制台 可以从任何安装了Python的本地计算机或服务器访问Python交互式控制台. 您通常希望使用的命令输入Python的默认版本的Python交互式控制 ...

  8. Python 正则表达式里的单行s和多行m模式

    Python 的 re 模块内置函数几乎都有一个 flags参数,规定了正则匹配时的各种策略模式,其中有两个模式:单行(re.DOTALL, 或者re.S)和多行(re.MULTILINE,或者re. ...

  9. python续行符是啥_python的续行符

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python 标识符命名规则开发中,我们通常约定俗称遵守如下规则:类型 规则 例 ...

最新文章

  1. torchvision.transforms 的CenterCrop():在图片的中间区域进行裁剪
  2. C#3.0-新增加功能浅析(1)
  3. 命令行下运行 java someClass.class出现 “错误:找不到或无法加载主类someClass ” 的解决方案
  4. 安装Maltego默认插件
  5. 【Bash百宝箱】shell内建命令之echo、printf
  6. 理解Android Binder机制(3/3):Java层
  7. 【链表】链表变化时其中的节点变化情况
  8. ITK:Levenberg-Marquardt优化
  9. 2017年9月分c语言,2020年9月中国编程语言排行榜
  10. PbootCMS是全新内核且永久开源免费的PHP企业网站开发建设管理系统
  11. 征稿通知!ICCV 2021 第一届面向意图表达的手绘草图研讨会
  12. 全网最全的 JavaScript 数组各个方法用途的思维导图
  13. 【干货分享】电信云/边缘云虚拟层软件StarlingX介绍
  14. 测试小阿姨的mac装机列表❤️(不定时更新~)
  15. linux pip的安装路径,pip使用详解(包括pip install安装路径)
  16. 2012年中国县级市面积排行(截止到2012年7月31日) (zz.IS2120@BG57IV3)
  17. 9个offer,12家公司,35场面试,计算机应届毕业生求职之路
  18. Matlab读取Excel各个子表的数据进行拟合
  19. 跨考计算机—努力换青春无悔(纪录篇)
  20. mac pro M1(ARM)安装:centos8.0虚拟机

热门文章

  1. java实验报告13答案_(完整版)Java程序设计实验报告
  2. 为什么C语言输出结果总是1,c语言编程问题这个题我哪里错了输出结果总是0
  3. 登录自动填密码php,192 实现自动登录无限路由器后台管理网页,可以记住自己输入的密码 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
  4. abaqus切削为什么没有切屑_切削液降温6大绝招,肯定有一款适合你
  5. Java里面长什么样,Java对象在JVM中长啥样
  6. mysql手工注入imformation_mysql 简单手工注入
  7. ftp linux 服务器 麒麟_阿里云ECS服务器搭建vsftpd
  8. webstorm 创建react组件_webstorm的下载以及React环境搭建
  9. Cron 触发器及相关内容 (第一部分)
  10. android 开发 切图,Android开发,切图网站推荐。