Как распечатать вывод и остаться в одной строке (Python)? - PullRequest
1 голос
/ 30 января 2020

У меня есть строка, проходящая через несколько строк, ведущая к терминалу для прокрутки до последней напечатанной строки. Но я хочу остаться на первой строчке, чтобы видеть первые строчки, но не последние. Это возможно? например:

for i in range(100):
    print(f"hello {i}")

и я хочу видеть hello 0, но результат должен оставаться в той же форме

Ответы [ 2 ]

1 голос
/ 30 января 2020

Вы можете установить defscrollback 100, если вы используете GNU. В противном случае это должно помочь:

class More(object):
def __init__(self, num_lines):
    self.num_lines = num_lines
def __ror__(self, other):
    s = str(other).split("\n")
    for i in range(0, len(s), self.num_lines):
        print(*s[i: i + self.num_lines], sep="\n")
        input("Press <Enter> for more")
more = More(num_lines=30)  
"\n".join(map(str, range(100))) | more
0 голосов
/ 30 января 2020

Я думаю, что этот вопрос на самом деле не о python, а о эмуляторе терминала, который вы используете. В большинстве эмуляторов терминала вы можете просто прокрутить строку вверх после запуска приложения, чтобы вывод не прокручивался автоматически. Просто сделайте следующее:

  1. Откройте терминал
  2. Запустите ваш python скрипт
  3. Прокрутите вверх, прежде чем начнется большой вывод
  4. Надеюсь, ваш Терминал остается в положении.

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

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