inchstrcurses-function是否可以在python中工作?

问题描述

我现在要使用 instr()在终端的一行中检索多个字符串,但这仅在该确切位置提取字符串。真正应该执行此操作的函数 inchstr(),但似乎在python中不起作用还是对?

解决方法

不。 Python的curses绑定不会扩展底层的curses库(很多)。 python可能会使用多个相关的curses函数,具体取决于您所查看的内容,但是没有一个函数会读取一行以上的文字:

第一个(instr)和第三个(inchstr)都从屏幕上读取,但是后者返回属性(颜色,下划线等)以及文本

Python的instr似乎使用前者,因为其文档说明了

返回一个字符的字节对象,该对象从窗口中提取,从当前光标位置开始,或者从 y x (如果指定)开始。 从字符中剥离如果指定了 n ,则 instr() 最多返回一个字符串 n 个字符长(不包括结尾的 NUL )。

第二个(inwstr)和第四个(in_wchstr)通过允许直接读取宽字符而不同于其他两个。 python实际上应该提供使用set(窄或宽字符接口)的方法,因为ncurses的宽字符接口更适合返回Unicode字符串,但是无论哪种情况,它都使用窄接口,返回字节数组(并要求使用应用程序以弄清楚如何将数据转换为字符串)。