用逗号结束 python 2.7 打印语句在 tmux 中不起作用吗?
Posted
技术标签:
【中文标题】用逗号结束 python 2.7 打印语句在 tmux 中不起作用吗?【英文标题】:Does ending a python 2.7 print statement with a comma not work in tmux? 【发布时间】:2016-08-15 18:34:13 【问题描述】:几乎就是问题所在。我在 tmux 中运行了一个缓慢的进程,并希望通过打印循环变量来记录 for 循环的进度。
print 'Progress...',
for i in range(15):
...
print i,
print
这适用于我的终端。然而,在 tmux 中,它不会打印任何内容,直到最后一次打印时遇到换行命令。在同一行上重复打印在 tmux 中不起作用吗?我该如何补救?这没什么大不了的,我只是好奇我能做什么,因为我对 bash 脚本了解不多。
谢谢!
【问题讨论】:
【参考方案1】:这几乎可以肯定是由于输出缓冲。您可以通过调用 flush 来检查原因:
import sys
print 'Progress...',
for i in range(15):
...
print i,
sys.stdout.flush()
print
如果这能解决您的问题,您可以考虑运行python unbuffered。
【讨论】:
在 tmux 中执行此操作与 tmux 需要刷新缓冲区的终端有什么区别?您知道为什么需要这样做吗?以上是关于用逗号结束 python 2.7 打印语句在 tmux 中不起作用吗?的主要内容,如果未能解决你的问题,请参考以下文章
Python 2.7 支持在 if else 语句中附加/扩展空变量