Можно ли напечатать строку в определенной позиции экрана внутри IDLE? - PullRequest
8 голосов
/ 12 сентября 2011

РЕДАКТИРОВАТЬ: Я только что обнаружил, что можно получить аналогичное поведение с помощью стандартной библиотеки "curses". Есть некоторые демонстрации того, как это работает здесь и там, например, на YouTube: http://www.youtube.com/watch?v=Bj-H9uPEa5U

Это странный и глупый вопрос, который я знаю, но мне любопытно, потому что я не очень разбираюсь в python и как он работает. Из терминала или когда вы используете IDLE, есть ли способ напечатать строку в определенной позиции экрана?

Я попытаюсь объяснить это лучше: Вы помните старые времена, когда вы делали небольшие программы на Basic, может быть, на Commodore 64, Apple II или ZX Spectrum? В те дни, если вы хотели напечатать строку в определенной позиции, вы писали что-то вроде этого:

10 МЕСТО 30, 40: ПЕЧАТЬ "Привет, мир"

Мне просто любопытно узнать, есть ли способ сказать python, что нужно печатать строку в определенной позиции, и есть ли способ узнать, сколько столбцов и сколько строк может фактически отображаться в окне IDLE.

Поскольку английский не является моим родным языком, я также нарисовал макет, чтобы объяснить эту концепцию немного лучше: -)

Спасибо.

Mockup screen to explain what I mean

1 Ответ

21 голосов
/ 14 сентября 2011

Я не знаю, работает ли это на IDLE, но на любом обычном терминале:

import sys
def print_there(x, y, text):
     sys.stdout.write("\x1b7\x1b[%d;%df%s\x1b8" % (x, y, text))
     sys.stdout.flush()

Используется Последовательности анси-спасения

...