Как очистить консоль после строки кода? - PullRequest
0 голосов
/ 31 августа 2018

Я хочу очистить консоль после каждого оператора печати / ввода, чтобы очистить экран. Я не хочу просто добавлять 100 пустых строк, но фактически очищаю консоль, чтобы она оставалась пустой до следующего оператора печати. ​​

import random

import time

input("Hello (click enter to continue after each line)")
# I want to clear the console here so it is blank before it prints again
print ("What is your name?")
# At this point, the line above is the only thing on the screen
lower_username = str(input("Enter Username: "))
upper_username = lower_username.capitalize()
input("Hello " + upper_username)

Спасибо за помощь!

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Очистка интерпретатора зависит от платформы, но вы можете узнать о базовой ОС:

import os
import platform


def clear():
    if platform.system() == 'Linux':
        os.system('clear')
    elif platform.system() == 'Windows':
        os.system('cls')

input("Hello (click enter to continue after each line)")
clear()
print("What is your name?")
# At this point, the line above is the only thing on the screen
lower_username = str(input("Enter Username: "))
upper_username = lower_username.capitalize()
input("Hello " + upper_username)

Ответ основан на этих двух 1 и 2 .

0 голосов
/ 31 августа 2018

Это не совсем «очистка консоли», но один из способов сделать подобное - использовать символ \ r. Это называется возврат каретки и перемещает курсор в начало строки.

print('Line one\r', end='', flush=True)
print('Line two\r', end='', flush=True)

Выше будет напечатано в той же строке. Обратите внимание, что если первая строка длиннее другой, то конец ее все равно будет отображаться. Вы можете визуально обойти это, добавив пробел к более короткой строке. Например:

print('Line long\r', end='', flush=True)
print('Line two\r', end='', flush=True)

Выведет Line twog, потому что первая строка длиннее на один символ. Визуальное исправление будет:

print('Line long\r', end='', flush=True)
print('Line two \r', end='', flush=True)

Обратите внимание на лишние пробелы после 'two'.

Добавление end = '' останавливает функцию печати, добавляя символ новой строки \ n в конец строки, позволяя вам печатать на той же строке.

0 голосов
/ 31 августа 2018

Это не в руках питона. Python может печатать только где-то . он не знает, где он печатает. Если вы находитесь в linux-подобном терминале, print("\033c") может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...