不带换行符的打印功能不';它在Python中不能正常工作

不带换行符的打印功能不';它在Python中不能正常工作,python,python-3.x,Python,Python 3.x,我正在为我的上传脚本做一个progressbar,因此我想打印一行多个“#”,但我无法让它工作。当我告诉Python不要添加换行符时,它确实会删除它,但在函数下它并不像预期的那样工作。在Python3中使用“print('#',end=''”)或在Python2中使用“print'#'”,会删除它,但在函数下执行时,在整个函数完成之前不会打印任何内容,它不应该像正常打印一样等待 import time i = 0 def status(): print('#', end='') w

我正在为我的上传脚本做一个progressbar,因此我想打印一行多个“#”,但我无法让它工作。当我告诉Python不要添加换行符时,它确实会删除它,但在函数下它并不像预期的那样工作。在Python3中使用“print('#',end=''”)或在Python2中使用“print'#'”,会删除它,但在函数下执行时,在整个函数完成之前不会打印任何内容,它不应该像正常打印一样等待

import time

i = 0

def status():
    print('#', end='')

while i < 60:
    status()
    time.sleep(1)
    i += 1
导入时间
i=0
def状态():
打印(“#”,结束=”)
当我<60时:
状态()
时间。睡眠(1)
i+=1
这应该每秒钟打印一次“#”,但事实并非如此。60秒后全部打印出来。使用justprint(“#”)按预期每秒打印一次。我真的需要解决这个问题。请帮忙

解决方案:
每次打印后的“sys.stdout.flush()”)

您可能需要在每次
打印后刷新输出缓冲区。请参见

我在空闲状态下试用了您的代码2.5次。所以我不得不使用打印格式作为-print'#'

这是我执行它时得到的结果-系统每秒打印“#”符号。在循环结束时,我得到了返回空闲状态的提示。所以在我看来,它正在做你期望它做的事情


您具体使用哪个版本?对不起,我没有版本3。所以我无法在那里测试。

您可以始终使用
strip()
功能。

为什么要尝试重新发明轮子?我使用了一个非常酷的解决方案,依我看:)很酷的东西。但我的progressbar实际上是一个阴茎,所以我的最小解决方案效果最好:)我在OS X的Terminal.app中尝试了Python 2.6.1和Python 3.2。