如何在Python中将字符打印到控制台的特定位置?

6 投票
2 回答
6149 浏览
提问于 2025-04-17 21:32

有没有办法在控制台上用Python(3)把一个字符打印到特定的位置?

这里有个理想的例子,展示了我想要实现的效果:

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

我知道在其他一些语言中是可以做到的,那Python呢?如果需要用外部库我也不介意。

我现在用的是Windows 7。

2 个回答

3

如果你的控制台或终端支持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。这样可以减少清屏时的闪烁现象。

7

如果你在使用UNIX系统(如果不是,请看下面的内容),可以使用curses这个模块:

import curses

stdscr = curses.initscr()

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

只有UNIX平台的Python包里包含了curses模块。不过如果你不在UNIX上也不用担心,因为有一个叫UniCurses的版本可以在Windows和Mac OS上使用。

撰写回答