如何用新的印刷线替换印刷线?

时间:2013-04-20 17:46:11

标签: python python-3.x

我要做的是用新的print语句替换print语句。通俗地说,我希望控制台打印Downloading...,然后在下载完成后立即将其替换为Downloading...done!。我已经尝试了this answer,但它只打印了一些垃圾,然后在新行上打印了print语句。我正在使用Python 3.提前感谢!

4 个答案:

答案 0 :(得分:0)

在第一个end=""中使用print,默认值endnew line,但您可以通过传递自己的值来更改它:

print("Downloading...",end="")
#your code here
print("Done!")

<强>输出

Downloading...Done!

print上的帮助:

In [3]: print?
Type:       builtin_function_or_method
String Form:<built-in function print>
Namespace:  Python builtin
Docstring:
print(value, ..., sep=' ', end='\n', file=sys.stdout)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep:  string inserted between values, default a space.
end:  string appended after the last value, default a newline.

答案 1 :(得分:0)

一个简单的例子:

import time
print("Downloading... ", end='')
time.sleep(3)
print("done.")

在使用“\ r”:

之前,您还可以替换行printet的一部分
import time
print("Downloading... ", end='')
time.sleep(3)
print("\r.............. done.")

这当然只有在回车符之前的任何地方不打印换行符时才有效。

答案 2 :(得分:0)

print ("Print this line, and print a newline")
print ("Print this line, but not a newline", end="")

http://www.harshj.com/2008/12/09/the-new-print-function-in-python-3/

答案 3 :(得分:0)

如果你想要一个互动的...,即它增长,你可以做这样的事情。只需更改while中的条件更合适,或者甚至在循环中使用while Trueif以及break

>>> import time
>>> def dotdotdot():
...     print("Downloading", end="")
...     a = 0
...     while a < 10:
...         print(".", end="")
...         time.sleep(1)
...         a += 1
...     print("done!")
...
>>> dotdotdot()
Downloading..........done!