问题标签 [python-curses]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1015 浏览

python - Python 诅咒 Mac OS X 上的鼠标事件

我正在尝试通过在 Mac OS X 10.10.3 上运行的 python curses 检索鼠标事件。我一直在关注另一个问题(Python curses.getmouse()),它有一个简单的例子,但它并没有为我产生预期的结果。我认为这与我的终端和/或操作系统有关,但我不确定。

这是我正在使用的代码:

有谁知道为什么 curses.KEY_MOUSE 事件似乎永远不会出现?

编辑:我已经检查了 mousemask 的返回值,当它最初运行时,它按预期返回元组 (1, 0)。

0 投票
1 回答
137 浏览

python - Python ncurses - 如何在用户打字时触发动作?

我正在使用 getstr() 读取用户输入文本。我不想等待用户按下回车,而是想在每次更改时读取输入并根据输入重新渲染屏幕的其他部分。

getstr() 有可能吗?如何?如果没有,最简单/最简单的选择是什么?

0 投票
2 回答
1053 浏览

python - curses.wrapper() 在背景/前景序列后弄乱了终端

我正在调查curses.wrapper无法正确恢复终端的错误。该问题在背景/前景序列之后显示。

考虑以下保存在中的 python 程序myprogram.py

重现问题的步骤:

  1. 运行程序:python myprogram.py
  2. 它开始 vi 编辑文件/tmp/foo
  3. 当我击中ctrl-z它时,它让我回到我的壳里
  4. 当我恢复程序时fg
  5. 它重新启动编辑器但屏幕错误(全黑且未绘制编辑器)

删除curses.wrapper(f)线使程序工作:当程序恢复时,编辑器被正确绘制。

我尝试了多种方法,例如将调用替换为curses.wrapper(f)实际执行的操作,并且最小的示例(即调用initscr, endwin)也会导致相同的问题。

我在跑步:

  • zsh 5.0.5,我也试过了最新的fish shell版本
  • 蟒蛇2.7.6
  • VIM - Vi 改进版 7.3

我错过了什么?

0 投票
1 回答
1275 浏览

python - Python 诅咒从另一个线程处理标准输出

我在我的 python 程序中运行了两个线程,一个线程使用 python curses 运行菜单系统并等待输入,一个线程基于菜单选择进行分析并通过内置print()函数输出其状态。我的问题是 print 不能很好地与 curses 一起使用,因为如果curses.echo()打开,那么它会打印到我正在等待输入的行,如果curses.noecho()使用了,则根本不会显示输出。

由于我想控制显示输出的位置和时间,我最初的解决方案是设置window.timeout(1000)然后有这样的输入循环:

这可以让我每秒检查一次标准输出的输出,然后如果需要更新菜单,同时仍然允许用户输入。我遇到的问题是我不知道如何捕获标准输出并在需要时选择显示它。这是可能吗?

0 投票
1 回答
73 浏览

python - python中带有curses的字符串切片

笔记。这个问题与最初提交给 codereview 的代码有关

请参阅https://codereview.stackexchange.com/questions/101011/mengenlehreuhr-in-python上的原始链接

所以我写了一个时钟。不仅仅是任何时钟,这个时钟的目的是破解Kryptos 部分 K4

虽然应用程序的完整源代码现在在 GitHub 上,但我遇到的具体问题与以下方法有关:

问题描述如下。

self.index < len(self.time_decipher.ciphertext)(97 个字符)时,突出显示按预期工作。

然而,当self.index == ~96我看到这个:

基本上,最后 2 个字符是从打印字符串的末尾剪切并在开头删除的。

请有人可以解释为什么会发生这种情况以及我能做些什么来克服这个问题?

0 投票
1 回答
8908 浏览

python - 解释 stdscr 中的“ENTER”按键(Python 中的诅咒模块)

我正在使用 Python 的 curses 模块。在 stdscr 中,每当我按 enter 键时,curse 都会移动到同一行的第一列。我有几个关于它的问题。

  1. 这是什么原因?

  2. 有没有办法把诅咒移到下一行?

  3. 如果我想在输入按键时做某些事情(执行某些功能或某些事情),那么在“如果”条件下会出现什么?例如

0 投票
2 回答
13732 浏览

python - _curses.error: addstr() 返回 ERR

使用 Python,我正在尝试编写一个脚本,该脚本将在您按下空格键时将所有键入的字符转换为“a”。例如,我输入“python”,然后输入空格,然后“python”将转换为“aaaaaa”。

上面的代码适用于第一行,但是,在第二行中,每当我按空格键时,我都会在第 22 行收到一个错误,提示“_curses.error: addstr() returned ERR”

编辑:当我将 screen.addstr(dim[0],dim 1 -count-1, h) 更改为 screen.addstr(dim[0],dim 1 -count, h) 时,错误被消除但输出不是我想要的是。我已附上输出供您参考。

在此处输入图像描述

0 投票
1 回答
348 浏览

python - TUI 和 CLI 之间的 npyscreen 切换选项

我正在开发一个控制台应用程序来管理来自 Unix 服务器的防火墙设备。控制台应用程序基于 python 的 npyscreen 库。我需要向用户提供的选项之一是从使用 npyscreen 开发的 TUI 登录到设备 CLI。为此,一旦从 unix 服务器登录到设备,我需要在 TUI 和设备 CLI 之间切换。

任何人(有 npyscreen 经验)都可以帮助我如何在 npyscreen 中完成这项工作吗?

这里的流程是这样的:

  1. 选择登录设备的选项(在 TUI 中)
  2. TUI 执行后端脚本以登录设备
  3. TUI 允许用户通过从 TUI 切换到 CLI 模式来查看设备控制台
  4. 用户在控制台模式下在设备上做他的事情
  5. 用户退出设备 CLI 并再次返回 TUI。

任何帮助将不胜感激。

问候普拉迪普

0 投票
1 回答
418 浏览

python - 如何在 Visual Studio 2013 中使用 UniCurses

我正在尝试学习 Python UniCurses,以便可以在我正在从事的项目中使用它。

这是我正在使用的:

  • 蟒蛇 2.7
  • 视觉工作室 2013
  • 适用于 Visual Studio 2013 的 Python 工具

我安装了必要的项目,UniCurses 和 PDCurses。它似乎在 Python 解释器和 IDLE 中工作得很好。但不是在 Visual Studio 中...

我一直收到一条错误消息,说pdcurses.dll丢失了。所以我决定将 PDCurses 文件复制到我项目的根目录中。这似乎解决了丢失的pdcurses.dll错误。

但是,UniCurses 仍然无法正常工作。当我尝试使用任何 UniCurses 函数时,我得到一个AttributeError: 'c_void_p' object has no attribute 'TheAttribute'. 除了我第一次初始化对象时,每个 UniCurses 函数都会发生这种情况:stdscr = unicurses.initscr()

所以我开始研究一些教程,以确保我正确安装了所有东西。我按照 GitHub 上 UniCurses README 的说明进行操作:https ://www.youtube.com/watch?v=6u2D-P-zuno和 YouTube 上的安装教程:https ://www.youtube.com/watch?v= 6u2D-P-zuno,我仍然无法让它工作。

我确实在这里找到了一个与我的问题有点相似但对我的问题没有帮助的帖子。你可以在这里查看:(Python Unicurses) stdscr not pass between files?

有谁知道我做错了什么?我花了几个小时寻找解决方案,但没有任何效果。

非常感谢任何帮助。谢谢!

0 投票
2 回答
8325 浏览

python - 在 python3 上为 Ubuntu 安装 NCurses

我在安装ncurses. Python3当我做 normalsudo apt-get install ncurses-dev时,它似乎安装了,Python2但是当我尝试运行我的脚本时Python3,它说。

你怎么ncurses去工作Python3