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

iq3niunx  于 2023-06-07  发布在  Python
关注(0)|答案(2)|浏览(532)

有没有一种方法可以使用Python(3)在控制台上打印一个字符到某个点?这里有一个关于我正在努力实现的理想示例:

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

我知道这在其他语言中是可能的,Python怎么样?我不介意使用外部图书馆。
我用的是Windows 7。

798qvoo8

798qvoo81#

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

import curses

stdscr = curses.initscr()

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

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

sqougxex

sqougxex2#

如果您的控制台/终端支持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。这将减少清除屏幕时的 Flink 。

相关问题