python中如何改变箭头的位置_如何在python中更改指针的位置?

小编典典

轻松做到

正如您似乎已经在使用该colorama模块一样,最简单易行的光标定位方式应该是使用相应的ANSI控件序列(请参阅:http

:

//en.m.wikipedia.org/wiki/ANSI_escape_code)

您要寻找的是CUP –光标位置(CSI n; m H),将光标置于n行和m列。

代码如下:

def move (y, x):

print("\033[%d;%dH" % (y, x))

用手做所有事情的痛苦

使事情甚至在Windows控制台中也能正常工作的漫长而痛苦的方式是不知道上述控制顺序,那就是使用Windows API。

幸运的是colorama,只要您不会忘记对的调用,该模块就会为您完成这项(艰苦的)工作colorama.init()。

出于教学目的,我留下了最痛苦的方法的代码,省去了colorama模块的功能,而是手动完成所有操作。

import ctypes

from ctypes import c_long, c_wchar_p, c_ulong, c_void_p

#==== GLOBAL VARIABLES ======================

gHandle = ctypes.windll.kernel32.GetStdHandle(c_long(-11))

def move (y, x):

"""Move cursor to position indicated by x and y."""

value = x + (y << 16)

ctypes.windll.kernel32.SetConsoleCursorPosition(gHandle, c_ulong(value))

def addstr (string):

"""Write string"""

ctypes.windll.kernel32.WriteConsoleW(gHandle, c_wchar_p(string), c_ulong(len(string)), c_void_p(), None)

如注释部分中所述,这种尝试仍然会给您带来问题,即您的应用程序只能在命名控制台中运行,因此也许您仍然会希望提供一个curses版本。

要检测是否支持curses或必须使用Windows API,可以尝试执行以下操作。

#==== IMPORTS =================================================================

try:

import curses

HAVE_CURSES = True

except:

HAVE_CURSES = False

pass

2020-12-20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值