加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在同一行上打印,一步一步

发布时间:2020-12-20 12:06:41 所属栏目:Python 来源:网络整理
导读:我开发了一个 Python脚本,可以连续执行多个任务(主要是连接服务器和检索信息). 有很多步骤,对于每个步骤,我想显示一个点,以便用户知道有什么事情发生. 在每一步结束时,我做: print('.',end='') 在最后一步,我写道: print('Done!') 它的工作原理,除了在执行
我开发了一个 Python脚本,可以连续执行多个任务(主要是连接服务器和检索信息).

有很多步骤,对于每个步骤,我想显示一个点,以便用户知道有什么事情发生.

在每一步结束时,我做:

print('.',end='')

在最后一步,我写道:

print('Done!')

它的工作原理,除了在执行最终打印之前没有显示任何内容,所以它有点失败了它的原始目的:)

基本上,屏幕上没有显示任何内容,并且在最后一刻,会弹出:

.......Done!

如何强制Python逐步在同一行上打印?

解决方法

默认情况下,stdout是行缓冲的,这意味着在写入换行符之前不会刷新缓冲区.

每次打印’.’时都清楚地刷新缓冲区:

print('.',end='',flush=True)

flush 3.3中添加了flush关键字;对于旧版本,请使用sys.stdout.flush().

print() function documentation:

Whether output is buffered is usually determined by file,but if the flush keyword argument is true,the stream is forcibly flushed.

sys.stdout documentation(print()函数的file参数的默认值):

When interactive,standard streams are line-buffered. Otherwise,they are block-buffered like regular text files.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读