#python #console
#python #консоль
Вопрос:
У меня есть программа, которая изменяет цвет изображения ASCII в цикле while. но когда я запускаю, он создает другой текст. Я хотел просто создать цвет, не создавая новый текст
вот мой код:
from rich import print
import random
import time
import sys
animation_time = 10
def generate_random_color():
random_color = ["red", "blue", "magenta", "yellow", "purple"]
return random.choice(random_color)
while True:
color = generate_random_color()
text = f"[{color}]
n██████╗ ██╗ ██████╗ ███████╗
n██╔══██╗██║██╔═══██╗██╔════╝
n██████╔╝██║██║ ██║███████╗
n██╔══██╗██║██║ ██║╚════██║
n██████╔╝██║╚██████╔╝███████║
n╚═════╝ ╚═╝ ╚═════╝ ╚══════╝
[/]"
print(text, end="r")
time.sleep(1)
Комментарии:
1. на некоторых терминалах / консолях есть специальные текстовые коды для очистки экрана. И затем вы можете
print("33c")
2. Можете ли вы соединить свою строку вместе, используя, например, форматирование строки или простое добавление? Что-то вроде
output_string = f"[{color}] input_string
?3. На что вы захотите взглянуть, так это на проклятия python, которые вам нужны, чтобы переместить курсор назад, чтобы перерисовать экран.
4. вы должны проверить в
rich
документации, нет ли в ней специальных кодов для перемещения курсора или очистки терминала.5. в терминале Linux вы можете использовать
print("33[%d;%dH" % (y, x))
для перемещения курсора в положениеx,y
. И тогда вы можете снова написать свой текст в том же месте
Ответ №1:
Я уже понял. Мне просто нужно каждый раз очищать экран вместо возврата каретки