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=1nUSERNAME=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(( 中使用 end 参数时,输出发生在 10 秒后(所有时间.sleep 的总和(。删除 end 参数后,输出每秒发生一次,这是应该的,但带有新行。 我该如何解决它?
UPD:对不起我的英语,这不是我的主要语言,这对我来说很难
尝试在打印语句后添加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=1nUSERNAME=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()
这将导致您的打印完成它的工作,然后将输出刷新到屏幕。