Python3.8 中的文本进度条

Text Progress Bar in Python3.8

import time

def create_logs():
        print("Creating log file...")
        print("Process [", end="")
        for i in range(0,5):
                time.sleep(1)
                print("#", end="")
        logs = open('/home/motya/Desktop/logs_py/logs.txt', 'w')
        logs.write("LOGS_ENABLE=1\nUSERNAME=GUEST")
        logs.close
        for i in range(0,5):
                time.sleep(1)
                print("#",end="")
        print("]\nComplete!\n")

def start_welcome():
        create_logs()
        print("Welcome!")

start_welcome()

当我在 print() 中使用结束参数时,输出发生在 10 秒后(所有 time.sleep 的总和)。当删除结束参数时,输出每秒发生一次,因为它应该是,但换行。 我该如何解决?

更新:对不起我的英语,它不是我的主要语言而且对我来说很难

尝试在打印语句后添加 sys.stdout.flush(),如下所示:

import time
import sys

def create_logs():
        print("Creating log file...")
        print("Process [", end="")
        for i in range(0,5):
                time.sleep(1)
                print("#", end="")
                sys.stdout.flush()
        logs = open('/home/motya/Desktop/logs_py/logs.txt', 'w')
        logs.write("LOGS_ENABLE=1\nUSERNAME=GUEST")
        logs.close
        for i in range(0,5):
                time.sleep(1)
                print("#",end="")
                sys.stdout.flush()
        print("]\nComplete!\n")
        sys.stdout.flush()

def start_welcome():
        create_logs()
        print("Welcome!")
        sys.stdout.flush()

start_welcome()

这将使您的打印完成它的工作,然后将输出刷新到屏幕上。