在Python中将字符打印到控制台上的某个点?

时间:2014-03-09 18:22:55

标签: python python-3.x printing console

有没有办法使用Python(3)将字符打印到控制台上的某个点? 这是我正在努力实现的一个理想的例子:

def print_char(x, y, char):
    # Move console cursor to 'x', 'y'
    # Set character under cursor to 'char'

我知道在其他一些语言中可以使用Python吗?我不介意我是否必须使用外部库。

我在Windows 7上。

2 个答案:

答案 0 :(得分:4)

如果您使用的是UNIX(如果不是,请参阅下文),请使用curses

import curses

stdscr = curses.initscr()

def print_char(x, y, char):
    stdscr.addch(y, x, char)

只有UNIX平台的Python包包含curses模块。但不要担心,如果这不适用于您,因为Windows和Mac OS可以使用名为UniCurses的移植版本。

答案 1 :(得分:2)

如果你的控制台/终端支持ANSI转义字符,那么这是一个很好的非模块解决方案。

def print_char(x, y, char):
    print("\033["+str(y)+";"+str(x)+"H"+char)

我必须稍微翻译才能使其正确,但它确实有效。您可以打印任意长度的字符串来代替单个字符。另外,如果你想让它多次重复执行这个函数,你应该这样做。

def print_char(x, y, char):
    compstring += "\033["+str(y)+";"+str(x)+"H"+char

然后在所有print_char执行后打印compstring。这将减少清除屏幕时的闪烁。