是否可以在IDLE内的某个屏幕位置打印字符串?

时间:2011-09-12 19:14:30

标签: python python-idle

编辑:我刚刚发现使用标准库“curses”可以获得类似的行为。有一些关于它如何工作的演示,例如在YouTube上:http://www.youtube.com/watch?v=Bj-H9uPEa5U

我知道这是一个奇怪而愚蠢的问题,但我很好奇,因为我对python及其运作方式知之甚少。 从终端或使用IDLE时,有没有办法在某个屏幕位置打印字符串?

我会试着更好地解释一下:你还记得曾经在Basic制作小程序的旧时代,也许是在Commodore 64,Apple II或ZX Spectrum上吗? 在那些日子里,如果你想在某个位置打印一个字符串,你曾经写过这样的东西:

10 LOCATE 30,40:打印“你好世界”

我只是想知道是否有办法告诉python在某个位置打印一个字符串,以及是否有办法知道在IDLE窗口中可以实际显示多少列和多少行。 / p>

由于英语不是我的母语,我也做了一个模型抽奖,以便更好地解释这个概念: - )

谢谢。

Mockup screen to explain what I mean

2 个答案:

答案 0 :(得分:21)

我不知道这是否适用于IDLE,但它可以在任何正常终端中使用:

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

这使用Ansi-Escape Sequences

答案 1 :(得分:0)

这个问题只有一个真实的答案,并不是一个很好的答案。方法:

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

不是完美的。我建议不要在终端中执行此类操作。如果您想做Gui的东西,请使用Pygame,Tkinter或Django。