Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让进度条保持在一条线上_Python_Python 3.x - Fatal编程技术网

Python 如何让进度条保持在一条线上

Python 如何让进度条保持在一条线上,python,python-3.x,Python,Python 3.x,我想知道如何让这个进度条像游戏或加载屏幕一样只打印一行。每次它都会在新行上反复打印,我不知道如何修复它。您可以在行的开始处使用“\r”(print(“something”,end=“\r”))而不是Windows上通常的“\r\n”和UNIX上的“\n”来终止行 例如: import time import sys progressbar = [] dashes = 1 spaces = 10 for i in range(11): print("Logging In[", end =

我想知道如何让这个进度条像游戏或加载屏幕一样只打印一行。每次它都会在新行上反复打印,我不知道如何修复它。

您可以在行的开始处使用“\r”(
print(“something”,end=“\r”)
)而不是Windows上通常的“\r\n”和UNIX上的“\n”来终止行

例如:

import time
import sys
progressbar = []

dashes = 1
spaces = 10
for i in range(11):
    print("Logging In[", end = "")
    for x in range(dashes):
        dash = "|"
        progressbar.append(dash)
        print(progressbar[x], end = "")
    for y in range(spaces):
        print(end = " ")

    dashes += 1
    spaces -= 1
    print("]")

sys.stdout.write()
sys.stdout.flush()

编辑:Yakir Tsuberi发布的链接更完整,不介意我的回答

print(“])
打印一个换行符。您需要打印一个
\r
回车符才能返回到同一行的开头。请更正y…的
后面的缩进。它将回答您的问题
import time
import sys


dashes = 1
spaces = 10
for i in range(11):
    progressbar = ['|' for x in range(dashes)]
    print("Logging In [", "|" * dashes, " " * spaces, "]", end="\r")
    dashes += 1
    spaces -= 1
    sys.stdout.flush()
    time.sleep(1)