python - 在 Python 中使用哪个控制台库?

标签 python windows linux

<分区>

我要用 Python 完成非常简单的任务。需要将文本数据 (Unicode) 绘制为屏幕上的行,可导航且用户可以选择/取消选择行。但是,这应该适用于 headless Linux,以及 Windows 或 Mac OS。 Curses 没有 Windows 端口。 Fredrik Lundh 的控制台模块仅适用于 Windows。我可以同时使用这两个库并检查操作系统,但是在 2 个不同的库上制作/维护相同的功能需要付出双重努力。

我正在寻找简单的多平台控制台库来绘制我所描述的内容。

最佳答案

在较低级别上,您将不得不使用 curses,Windows 上的底层 curses 库有多种选择,可能有效也可能无效。在 UNIX 上使用 curses 不会有任何真正的问题,所以如果我是你,我会首先让它在 Windows 上运行,如果某个特定功能无法正常工作,则围绕它进行编程。 UNIX 端口应该是无痛的。

适用于 Windows 的 PDCurses 可作为 DLL 或源代码使用,并且可以使用 ctypes 模块直接连接到任何 DLL。有一个工具可以自动为你生成一个 ctypes 包装器,叫做 ctypesgen.py http://wavetossed.blogspot.com/2011/07/asynchronous-gnu-readline.html我不确定它是否非常自动地适用于 Windows DLL,但它确实适用于头文件,因此值得一试。

有关 ctypes 的更多背景信息,请查看此处的一些问题,例如 Scheduling function calls in a Python curses UI

关于python - 在 Python 中使用哪个控制台库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528485/

相关文章:

linux - Scapy 不发送具有全局范围目标地址的 IPv6 数据包

python - 在 Seaborn 中绘制特定列值而不是每个列值

python - 是否有任何 Python 环境支持编辑并继续?

python - 列表到混合维度矩阵

windows - Jenkins windows slave 构建 "Failed to abort"错误

linux - 如何将linux命令输出存储到puppet中的变量中

python - subprocess.check_output 与 subprocess.call 的性能

python - matplotlib 设置自己的轴值

c++ - 在没有源代码访问权限的情况下修改旧 Windows 程序以在按键后不调用退出

c# - 如何查看当前用户的计划任务列表