繁体   English   中英

如何在不使用的情况下在python的同一行上打印,

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM