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

Python 是否可以在IDLE内的某个屏幕位置打印字符串?,python,python-idle,Python,Python Idle,编辑:我刚刚发现,使用标准库“诅咒”可以获得类似的行为。这里和那里有一些关于它如何工作的演示,例如在YouTube上: 我知道这是一个奇怪而愚蠢的问题,但我很好奇,因为我对python及其工作原理知之甚少。 从终端或使用IDLE时,是否有任何方法在特定屏幕位置打印字符串 我会试着更好地解释这一点:你还记得以前你用Basic(可能是Commodore 64、Apple II或ZX频谱)制作小程序的日子吗? 在那段时间里,如果你想在某个位置打印字符串,你通常会这样写: 10定位30、40:打印“he

编辑:我刚刚发现,使用标准库“诅咒”可以获得类似的行为。这里和那里有一些关于它如何工作的演示,例如在YouTube上:

我知道这是一个奇怪而愚蠢的问题,但我很好奇,因为我对python及其工作原理知之甚少。 从终端或使用IDLE时,是否有任何方法在特定屏幕位置打印字符串

我会试着更好地解释这一点:你还记得以前你用Basic(可能是Commodore 64、Apple II或ZX频谱)制作小程序的日子吗? 在那段时间里,如果你想在某个位置打印字符串,你通常会这样写:

10定位30、40:打印“hello world”

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

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

多谢各位


我不知道这在空闲时是否有效,但在任何正常终端中都有效:

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

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

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。

如果你想做这种花哨的事情,就不要闲着,接受诅咒吧。或者自己重新实现其中的一半,这是相当痛苦的。如果你要使用诅咒,请尝试使用祝福,它有很多简单的功能来执行相同的任务(注意,此评论不是针对问题的原始海报,而是针对谷歌搜索后出现在这里的人)@Caltor:遵循上面解释Ansi转义序列的链接。这些都是终端软件解释的。谢谢,正是我要找的。虽然我必须反转x和y。我得到了这个,但它对Windows控制台不起作用吗?>>在那里打印(0,0,'hello')←7.←[0;0f你好←8>>>