在Python3中更新一行文本
我想更新一行文本,这样我就不会有太多的输出行。查看安装程序以获取示例: 而不是 安装状态:1% 安装状态:2% 安装状态:3% 。。。我希望每次百分比变化时都更新同一行 我已经找到了这样做的方法(好吧,这实际上是在欺骗用户),但这有点糟糕,因为上面的所有行都消失了。我说的是导入“os”,然后执行“os.system(“clear”)” 有没有更好的办法在Python3中更新一行文本,python,Python,我想更新一行文本,这样我就不会有太多的输出行。查看安装程序以获取示例: 而不是 安装状态:1% 安装状态:2% 安装状态:3% 。。。我希望每次百分比变化时都更新同一行 我已经找到了这样做的方法(好吧,这实际上是在欺骗用户),但这有点糟糕,因为上面的所有行都消失了。我说的是导入“os”,然后执行“os.system(“clear”)” 有没有更好的办法 顺便说一句:我说的是每秒几百次的变化。安装程序只是一个例子。使用附件\r然后sys.stdout.flush() 要继续使用安装程序示例,请执
顺便说一句:我说的是每秒几百次的变化。安装程序只是一个例子。使用附件
\r
然后sys.stdout.flush()
要继续使用安装程序示例,请执行以下操作:
import sys
import time
for i in range(100):
sys.stdout.write("\rInstallation Progress: %d percent" % i)
time.sleep(.05)
sys.stdout.flush()
快乐编码
编辑--我使用%表示完成的百分比。结果是占位符不完整。我道歉 使用附件
\r
然后sys.stdout.flush()
要继续使用安装程序示例,请执行以下操作:
import sys
import time
for i in range(100):
sys.stdout.write("\rInstallation Progress: %d percent" % i)
time.sleep(.05)
sys.stdout.flush()
快乐编码
编辑--我使用%表示完成的百分比。结果是占位符不完整。我道歉 这与python无关,但与输出到标准输出有关:您可以使用退格(
\b
)或回车(\r
)字符操纵光标的位置。具体取决于您想要实现的目标,您将需要使用这些目标的一些组合。您可以看一个例子。这与python无关,但与输出到标准输出有关:您可以使用退格(\b
)或回车(\r
)字符操纵光标的位置。具体取决于您想要实现的目标,您将需要使用这些目标的一些组合。您可以将其作为一个示例。如果需要,您可以制作一个漂亮的动画:
import sys
import time
barWidth = 50 # you can play with this
def updateProgressBar(value):
line = '\r%s%%[%s]' % ( str(value).rjust(3), '-' * int ((float(value)/100) * barWidth))
print line,
sys.stdout.flush()
for i in range(1,101):
updateProgressBar(i)
time.sleep(0.05) # do the job here
这将为您提供以下格式的输出:
100%[--------------------------------------------------]
PS:对于Python 3,您可以使用
print(line,end='')
更改print line,
。如果需要,您可以制作一个漂亮的动画:
import sys
import time
barWidth = 50 # you can play with this
def updateProgressBar(value):
line = '\r%s%%[%s]' % ( str(value).rjust(3), '-' * int ((float(value)/100) * barWidth))
print line,
sys.stdout.flush()
for i in range(1,101):
updateProgressBar(i)
time.sleep(0.05) # do the job here
这将为您提供以下格式的输出:
100%[--------------------------------------------------]
PS:您可以使用Python 3的
print(line,end='')更改print line,
。Related:or Related:or我猜您这里有一个打字错误:sys.stdout.write(“\r安装进度:%d%%I)
@Sait谢谢您的注意!我甚至没看到。结果表明,如果单独使用百分比符号,它将构成一个不完整的占位符,因此它抛出了一个错误。对不起D您可以使用:%%
。例如:打印“%d%%”%5
即可。很高兴我现在知道了!XDI猜想您在这里输入了一个错误:sys.stdout.write(“\r安装进度:%d%%i)
@Sait感谢您的注意!我甚至没看到。结果表明,如果单独使用百分比符号,它将构成一个不完整的占位符,因此它抛出了一个错误。对不起D您可以使用:%%
。例如:打印“%d%%”%5
即可。很高兴我现在知道了!除息的