[英]How to print on the same line in python without using ,
目前,我在脚本中有以下代码:
print "Loading... "
html = urllib2.urlopen(url).read()
print "Done"
效果很好,它显示加载,下载完成时暂停,然后显示完成。 唯一的问题是,“完成”在下一行。
理想情况下,它会在同一条线上,所以我会完成Loading... (pause) done
我尝试在第一个打印语句的末尾添加一个逗号,但是尽管达到了所需的输出,但在加载 HTML 之前它不会输出任何字符串,因为逗号告诉 python 等待完成打印语句(至少我认为确实如此)。
那么如何在同一行上打印“加载”和“完成”,同时仍然能够独立输出它们?
标准输出是行缓冲的,你必须刷新它:
sys.stdout.flush()
use 可以使用 sys 模块
sys.stdout.write("plop")
在sys.stdout
上调用flush()
似乎具有预期的效果,使用sleep()
模拟的“负载”:
#!/usr/bin/env python
from sys import stdout
from time import sleep
print "Loading... ",
stdout.flush()
sleep(5)
print "Done"
因此,当它使用,
打印,
,您说您不想在问题中这样做,但它确实解决了问题。
试试这个:
import sys
print "Loading... ",
sys.stdout.flush()
html = urllib2.urlopen(url).read()
print "Done"
这种方式也有效,尽管它的缺点是此后需要 Python 3 打印语法......
from __future__ import print_function
print("Loading...", end=" ")
html = urllib2.urlopen(url).read()
print("Done")
打印(“堆栈”,结束=“”)
打印(“溢出”)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.