Как очистить консоль в питон?
Я хочу сделать анимацию загрузки меню, он добавляет до трёх точек после "Loading" и потом должен начать заново, но потом он пишет сверху него (кажется), в интернете не нашёл ответа. Вот мой код:
import time
while True:
print('Loading', end = "\r")
time.sleep(0.5)
print('Loading.', end = "\r")
time.sleep(0.5)
print('Loading..', end = "\r")
time.sleep(0.5)
print('Loading...', end = "'\r")
time.sleep(0.5)
Ответы (3 шт):
Очистить консоль можно при помощи встроенной библиотеки os.
Для Windows используется команда cls
, а для unix/linux и macOS - clear
import os
def clear_my_console():
os.system('cls' if os.name == 'nt' else 'clear')
Главная идея – затирать строку пробелами, если вы собираетесь печатать меньше символов чем было. Ещё я перегруппировал печать так, чтобы курсор был виден в конце строки. Остальные изменения – косметика:
import time
while True:
print('\r ', end='')
print('\rLoading' , end='', flush=True)
time.sleep(0.5)
print('\rLoading.' , end='', flush=True)
time.sleep(0.5)
print('\rLoading..' , end='', flush=True)
time.sleep(0.5)
print('\rLoading...', end='', flush=True)
time.sleep(0.5)
Ещё можно уменьшить обновление экрана:
import time
print('Loading', end='', flush=True)
while True:
time.sleep(0.5)
print('.', end='', flush=True)
time.sleep(0.5)
print('.', end='', flush=True)
time.sleep(0.5)
print('.', end='', flush=True)
time.sleep(0.5)
print('\b \b\b \b\b \b', end='', flush=True)
Можно добавить ещё один цикл, приправить f-строками, тем самым сократив код. К тому же курсор не будет прыгать, но останется видимым - как бы создавая границы загрузки.
import time
while True:
for i in range(4):
print(f"\rLoading{'.'*i}{' '*(3-i)}", end='')
time.sleep(0.5)