python - 如何在没有换行的情况下在 Python 2.7 中打印而无需缓冲

标签 python string python-2.7 output

我需要在 Python 2.7 中在没有换行符的情况下将文本打印到控制台,因此我可以在以后的代码中继续在同一行上编写更多文本。我当前的实现涉及从 future 库中导入 Python 3 打印函数,并使用 end=''。

这并不理想,就像我打印一行一样,例如:

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

然后使用任何其他代码,然后是一行,例如:
print("we finished doing that thing.")

该行被打印,但它是一次性打印的,这意味着它被缓冲,直到它得到包含换行符的打印。我更希望能够将第一个打印字符串输出到控制台,执行其他代码,然后放入带有换行符的部分。我无论如何都找不到在 Python 2.7 中使用打印来执行此操作的方法。也许有人可以给我指出一种功能性的方法来做到这一点?谢谢。

对于那些建议环境缓冲修复它的人来说,它没有。它影响文件输出和其他一些与它无关的杂项。下面有一个总体上是实用的答案。

最佳答案

在文件的开头包含以下内容:

from __future__ import print_function

然后你可以同时使用 endflush命名参数就像您在 Python 3 上一样。它看到您缺少 flush范围:
print("We're doing something...",end='', flush=True)

如果由于某种原因你不能或不想这样做,你应该结束你的遗产 print只用一个逗号的语句。如果需要打印部分行,则必须手动调用sys.stdout.flush()打印后不久:
 print "We're doing something...",
 sys.stdout.flush()
 ...
 print "Done!"

关于python - 如何在没有换行的情况下在 Python 2.7 中打印而无需缓冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50953981/

相关文章:

c - 如何从文件中读取文本到数组

django - 使用 Django 配置 mongoDB

django - 错误: invalid command 'bdist_wheel'

Python If == true 语句仅适用于 readline 的最后一行

java - 检查字符串是否为回文(使用 char[] 输入而不是字符串)

python - 如何使用kivy添加on_press来在python中更改屏幕?

java - If 语句在字符串搜索中不起作用

python - 将从 url 获取的二进制数据保存到 Django FileField 中

python - 如何使用选项在 setuptools 上运行命令?

python - 如何在不循环的情况下一次获取一个类的多个值?