为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不使用换行符的情况下使用Python 2.7打印而不进行缓冲

如何在不使用换行符的情况下使用Python 2.7打印而不进行缓冲

慕的地8271018 2021-04-01 13:11:05
在Python 2.7中,我需要不使用换行符将文本打印到控制台,因此以后可以在以后的代码中继续在同一行上编写更多文本。我当前的实现涉及从将来的库中导入Python 3打印功能,并使用end =''。好像我打印一行一样,这不是理想的选择,例如:print("We're doing something...",end='')然后再加上其他任何代码,然后添加一行,例如:print("we finished doing that thing.")该行将被打印,但是将全部打印一次,这意味着它将被缓冲,直到获得带有换行符的打印为止。我更希望能够将第一个打印字符串输出到控制台,执行其他代码,然后将其与换行符一起放入。无论如何,我找不到在python 2.7中使用print来做到这一点的方法。也许有人可以向我指出实现此目的的功能方法?谢谢。对于那些建议环境缓冲修复它的人,事实并非如此。它会影响文件输出以及与此无关的其他杂项。以下是一个可以整体运行的答案。
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

在文件开头添加以下内容:


from __future__ import print_function

然后,可以像在Python 3上一样使用参数end和flush命名参数。这表明您缺少该flush参数:


print("We're doing something...",end='', flush=True)

如果由于某种原因您不能或不想这样做,则应print以唯一的逗号结尾。如果需要打印分行,则必须sys.stdout.flush()在打印后立即手动调用:


 print "We're doing something...",

 sys.stdout.flush()

 ...

 print "Done!"


查看完整回答
反对 回复 2021-04-09
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号