@jintaxi
Чуть-чуть програю для себя.

Как мне из консоли удалить уже имеющийся текст на Python 3.8?

У меня есть программа, которая выводит в консоль (macOS или Linux) время большими символами (см. прикреплённый скриншот). Я хочу, чтобы программа просто-напросто начинала выводить необходимые символы заново. Но меня не устраивает полное очищение консоли ('clear' или 'cls'). Я хочу, чтобы программа просто начинала выводить новые данные.

Если что, то программа выводит символы построчно.

Вот сам код:
#Необходимые модули.
from datetime import datetime #Модуль для определения времени.
from time import sleep #Модуль для 'простойки'.

#Все необходимые символы.
digits = [
[' ---- ','|    |','|    |','|    |','|    |','|    |',' ---- '], #Ноль.
['      ','     |','     |','     |','     |','     |','      '], #Один.
[' ---- ','     |','     |',' ---- ','|     ','|     ',' ---- '], #Два.
[' ---- ','     |','     |',' ---- ','     |','     |',' ---- '], #Три.
['      ','|    |','|    |',' ---- ','     |','     |','      '], #Четыре.
[' ---- ','|     ','|     ',' ---- ','     |','     |',' ---- '], #Пять.
[' ---- ','|     ','|     ',' ---- ','|    |','|    |',' ---- '], #Шесть.
[' ---- ','     |','     |','     |','     |','     |','      '], #Семь.
[' ---- ','|    |','|    |',' ---- ','|    |','|    |',' ---- '], #Восемь.
[' ---- ','|    |','|    |',' ---- ','     |','     |',' ---- '], #Девять.
['      ','      ','  []  ','      ','  []  ','      ','      ']] #Точки (разделители).

#Начинаем выводить символы в консоль.
for j in range(3):
    now = list(str(datetime.now())[11:19:1]) #Здесь мы находим реальное вермя ЧЧ:ММ:CC.
    for i in range(7):
        #Вывод построчно больших цифр.
        print ('{0} {1}{6}{2} {3}{6}{4} {5}'.format(digits[int(now[0])][i], digits[int(now[1])][i], digits[int(now[3])][i],
        digits[int(now[4])][i], digits[int(now[6])][i], digits[int(now[7])][i],digits[10][i]))
    sleep(1) #Ждём секунду.


Если что, то в моменте 'for j in range (3):' в будущем будет переписано на 'while True:'

5eb459c8c147e009218880.png

Мне нужно, чтобы предыдущее символы (в данном случае 21:55:47 затёрлись и на их месте появились бы новые 21:55:48 и так далее)

И если, конечно, можно, то немного укоротить вывод символов в консоль (в методе .format() )

Помогите, люди добрые! :O
  • Вопрос задан
  • 1945 просмотров
Пригласить эксперта
Ответы на вопрос 1
sanya84
@sanya84
Фанатик Python 3
Для очищения консоли можно использовать команду cls в Windows работает
Думаю в Linux она тоже есть
#Необходимые модули.
import os
from datetime import datetime #Модуль для определения времени.
from time import sleep #Модуль для 'простойки'.

#Все необходимые символы.
digits = [
[' ---- ','|    |','|    |','|    |','|    |','|    |',' ---- '], #Ноль.
['      ','     |','     |','     |','     |','     |','      '], #Один.
[' ---- ','     |','     |',' ---- ','|     ','|     ',' ---- '], #Два.
[' ---- ','     |','     |',' ---- ','     |','     |',' ---- '], #Три.
['      ','|    |','|    |',' ---- ','     |','     |','      '], #Четыре.
[' ---- ','|     ','|     ',' ---- ','     |','     |',' ---- '], #Пять.
[' ---- ','|     ','|     ',' ---- ','|    |','|    |',' ---- '], #Шесть.
[' ---- ','     |','     |','     |','     |','     |','      '], #Семь.
[' ---- ','|    |','|    |',' ---- ','|    |','|    |',' ---- '], #Восемь.
[' ---- ','|    |','|    |',' ---- ','     |','     |',' ---- '], #Девять.
['      ','      ','  []  ','      ','  []  ','      ','      ']] #Точки (разделители).

#Начинаем выводить символы в консоль.
while True:
    now = list(str(datetime.now())[11:19:1]) #Здесь мы находим реальное вермя ЧЧ:ММ:CC.
    for i in range(7):
        #Вывод построчно больших цифр.
        print ('{0} {1}{6}{2} {3}{6}{4} {5}'.format(digits[int(now[0])][i], digits[int(now[1])][i], digits[int(now[3])][i],
        digits[int(now[4])][i], digits[int(now[6])][i], digits[int(now[7])][i],digits[10][i]))
    sleep(1) #Ждём секунду.
    os.system("cls")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы