栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在python中更改指针的位置?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在python中更改指针的位置?

轻松做到

正如您似乎已经在使用该

colorama
模块一样,最简单易行的光标定位方式应该是使用相应的ANSI控件序列(请参阅:http
:
//en.m.wikipedia.org/wiki/ANSI_escape_pre)

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

代码如下:

def move (y, x):    print("33[%d;%dH" % (y, x))

用手做所有事情的痛苦

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

幸运的是

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

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

import ctypesfrom 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 = Trueexcept:    HAVE_CURSES = False    pass


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639191.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号