我想运行一个脚本,它基本上显示如下输出:

Installing XXX...               [DONE]

目前,我打印安装XXX…首先,然后打印[完成]。

我怎么能打印安装xxx…和[DONE]在同一行?


关于在同一行上写入新消息,替换之前的内容的具体问题,请参见如何将先前的打印内容覆盖到标准输出?。这里的大多数答案都把这个问题理解为在当前行的末尾写新的文本。

有关使用单个打印一次输出多个内容的问题,请参见如何在同一行上一次性打印多个内容(固定文本和/或变量值)。


当前回答

Python将换行符作为输出的结束符。使用end=' ' for python3 for print方法添加一个空格而不是换行符。对于python2,在print语句的末尾使用逗号。

print('Foo', end=' ')
print('Bar')

其他回答

Print有一个可选的end参数,它是最后打印的内容。 默认值是换行符,但您可以将其更改为空字符串。例如:print("hello world!", end="")

使用sys.stdout。写(“安装XXX……')和sys.stdout.write('Done')。通过这种方式,如果您想重新创建打印功能,就必须手动添加“\n”新行。我认为没有必要为此使用诅咒。

Sys.stdout.write将输出没有返回符

import sys
sys.stdout.write("installing xxx")
sys.stdout.write(".")

http://en.wikibooks.org/wiki/Python_Programming/Input_and_output#printing_without_commas_or_newlines

这个简单的例子将在同一行打印1-10个字符。

for i in range(1,11):
    print (i, end=" ")

Python 3中的解决方案。X具体:

当我需要这样做的时候,我通常只用

end=' '

例如:

# end='' ends the output with a <space> 
print("Welcome to" , end = ' ') 
print("stackoverflow", end = ' ')

输出如下:

Welcome to stackoverflow

end=中的空格可以替换为任何字符。例如,

print("Welcome to" , end = '...') 
print("stackoverflow", end = '!')

输出如下:

Welcome to...stackoverflow!