用逗号结束 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 语句中附加/扩展空变量

Python里面语句结束是用冒号吗?

在Python命令行用print语句显示自己的姓名,截图上传。

Python 2.7 fnmatch 不编辑文本

Python值print语句

Python 2.7 学习笔记 内置语句函数标准库