os.system('cls') открывает командную строку вместо очистки оболочки?

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

Я пытался использовать print('n\ * 100') и другие подобные трюки с печатью, но это не дает того результата, который я ищу. Я также пытался переключаться между «cls» и «clear» на случай, если я делал это неправильно, но даже когда я сделал оператор if, указывающий на разницу между ними, я все еще получаю ошибки.

в то время как charcount ‹ len (текст):

if os.name == 'nt':

  os.system('cls')

else:

  os.system('clear')

newtext.append(text[charcount])

print("".join(newtext))

charcount += 1

Я ожидал, что экран очистится и напечатает только текущую итерацию нового текста, но вместо этого он игнорирует это, не очищает экран и постоянно открывает и закрывает командную строку.


person ZaruStarru    schedule 01.06.2019    source источник


Ответы (1)


Ваш код отлично работает в CMD и PowerShell.
Это заставляет меня предположить, что вы используете IDLE, потому что описанное вами поведение воспроизводится только тогда, когда я использую IDLE.

В этом случае невозможно очистить окно IDLE. Вы все еще можете использовать CMD, и это будет работать нормально.

См. Любой способ очистить окно IDLE Python?

person Akash Govind    schedule 01.06.2019