Как удалить или очистить печатный текст в python

Я изучаю Python в Jupyterlab. В настоящее время я пытался найти способ очистить печатный текст в Jupyterlab, но мне не повезло.

Я искал в Интернете, чтобы найти несколько решений. Однако они не очистят напечатанный текст в моей консоли, даже если другие сообщили о результатах определения местоположения.

я попробовал (1). '\b' символ (2) os.система ('cls') (3) sys.stdout.write

всем им не удалось очистить печатный текст.

print('Hello',end='')
print(5*'\b')
print('how are you?',end='')

выход: Ад как дела?

print('Hello',end='')
for i in range(len('Hello')):
    print('\b',end='')

print('how are you?',end='')

выход: Ад как ты?

print('Hey')
import os
if os.name=='nt':
    os.system('cls')
else:
    os.system('clear')
print('how are you?')

выход: Привет как дела?

import sys, time

def delete_last_line():
    sys.stdout.write('\x1b[1A')
    sys.stdout.write('\x1b[2K')

print("hello")
time.sleep(2)
delete_last_line()
print("how are you")

выход: привет как твои дела

Интересно, это потому, что система или модули были обновлены, так что методы больше не работают одинаково, или на моем компьютере или в Jupyterlab есть ошибки, вызывающие сбой.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
0
2 163
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я пробовал так и преуспел:

import sys

sys.stdout.write('hello\r')
sys.stdout.flush()
sys.stdout.write('how are you\r')

>>>how are you

вам нужно использовать sys.stdout.write(info + '\ r') для вывода информации. '\r' означает возврат к началу строки без изменения строк.

Это сработало хорошо. Спасибо. Интересно, есть ли общий метод, который работает с функцией print(). так как print() - это то, что большинство людей вызывает для вывода текста на экран.

Muchdecal 26.07.2019 03:18
Ответ принят как подходящий

Будьте внимательны к длине, \r курсор возвращается в начало строки, но не затирается, а затирается только с начала введенным текстом.

print('Hello', end='\r')
# >>> Hello
print('How are you?', end='\r')
# >>> How are you?
print('TEST', end='\r')
# >>> TESTare you?

Возможно, я бы предложил вспомогательную функцию:

def echo(string, padding=80):
    padding = " " * (padding - len(string)) if padding else ""
    print(string + padding, end='\r')

echo("Hello")
# >>> Hello
echo("How are you?")
# >>> How are you?
echo("TEST")
# >>> TEST

Функция довольно оригинальная. Он отлично решает мою проблему. Однако я очень удивлен, что нет встроенных функций или модулей (по крайней мере, я не смог их найти) для решения этой проблемы. Очистка вывода на экран и создание новых кажется фундаментальной возможностью в большинстве приложений.

Muchdecal 27.07.2019 07:15

Другие вопросы по теме