python:使用回车符和逗号打印无效

python:使用回车符和逗号打印无效,python,newline,carriage-return,Python,Newline,Carriage Return,我需要在循环中打印一行(Python3.x)。环顾四周,我在代码中写下了这一行: print('{0} imported\r'.format(tot),) 但是,它在循环时仍会打印多行。我也试过了 sys.stdout.write('{0} imported\r'.format(tot)) 但这不会将任何内容打印到控制台 有人知道这是怎么回事吗?在第一种情况下,一些系统会将\r视为新行。在第二种情况下,您没有刷新该行。试试这个: sys.stdout.write('{0} imported\

我需要在循环中打印一行(Python3.x)。环顾四周,我在代码中写下了这一行:

print('{0} imported\r'.format(tot),)
但是,它在循环时仍会打印多行。我也试过了

sys.stdout.write('{0} imported\r'.format(tot))
但这不会将任何内容打印到控制台


有人知道这是怎么回事吗?

在第一种情况下,一些系统会将
\r
视为新行。在第二种情况下,您没有
刷新该行。试试这个:

sys.stdout.write('{0} imported\r'.format(tot))
sys.stdout.flush()

正如Levon提醒我的那样,在所有系统上刷新行也不是必需的,但这样使用
\r
通常是个好主意。

如果要覆盖最后一行,则需要添加\r(字符返回)和end=“”,这样就不会转到下一行

values = range(0, 100)
for i in values:
    print ("\rComplete: ", i, "%", end="")
print ("\rComplete: 100%")

我更喜欢使用Jan的解决方案,但以这种方式:

values = range(0, 101)
for i in values:
  print ("Complete: ", i, "%", end="\r")
print ()

sys.stdout.write()。。您有
导入系统
。您是否试图将输出叠加在同一行上?如果您试图获得与python 2.x中的打印文本相同的效果,则需要使用
end
参数,如
print(text,end='')
。函数参数末尾的逗号无效。不确定“from 2.x”。行
print(text,end='')
=
@kevlar1818处给了我一个语法错误,正如我在评论中提到的,这个错误对我有效(即使没有刷新输出缓冲区)。。。oddth
sys.stdout.flush()
正是我所需要的。谢谢