问题标签 [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 投票
3 回答
2792 浏览

python - Python 的 curses 模块在收到第一个字符之前不会刷新 pad

我有以下代码,可让您上下滚动一段文本。每次滚动(即处理用户输入)时,pad 都会按预期更新。但是,在按下第一个键之前没有显示任何内容,尽管我正在调用 pad.refresh() 就像我在每次用户输入后所做的那样。

我的代码如下所示:

编辑:代码中显示的更改已尝试的内容(+、++、--)

0 投票
1 回答
221 浏览

python - 在不清除屏幕的情况下读取 linux 终端中的特殊键

我有一个程序,我只需要读取 linux 终端(xterm 和控制台)中的特殊键。目前我正在使用curses来做这件事(尽管我绝对不需要诅咒其他任何东西),它完美地工作除了一个令人讨厌的地方:我不希望诅咒清除屏幕并更改 CRLF 模式。

也就是说,这段代码可以做到:

但复杂的是它会清除屏幕并且看不到终端上以前的内容;后台进程的所有输出也将仅将换行符转换为换行符。

我知道我可以自己将终端变成未煮熟的模式,在ESC字符后延迟等等,但我希望这个程序可以使用特殊键,例如F1,Home↑</kbd> consistently, on all terminals, and as such it would be PITA

因此有什么办法可以

  • 避免使用curses清除屏幕并更改换行模式(我读到newtermncurses的功能可以用于它,但它不是由Python实现的),或者
  • 清除后恢复原始屏幕并手动恢复 CRLF 行为等的任何方式,
  • 在 Linux 中持续读取特殊键的任何其他简单方法?
0 投票
1 回答
175 浏览

python - Try-Except-Pass:在右下角写入不会像我期望的那样失败

使用python的curses模块我知道在右下角书写会引发错误(与没有“下一个地方”的光标有关)。

但我不在乎; 我只想尽可能地写一个角色,否则没什么大不了的。所以我虽然使用 try-except-pass 构造

我认为它只会“通过”并忽略“addch”指令。但令我惊讶的是,这个字符被打印出来了!

有人可以解释一下原因吗?

ps:我确认没有 try-except 构造我得到:

_curses.error: addch() 返回 ERR

0 投票
3 回答
6018 浏览

python - 为什么转义键在 Python 诅咒中有延迟?

在 Python模块中,我观察到按键和返回curses之间大约有 1 秒的延迟。其他键似乎不会出现这种延迟。为什么会发生这种情况,我该怎么办?escgetch()

测试用例:

结果:

0 投票
1 回答
1012 浏览

python - Python 诅咒不显示颜色,而 C ncurses 工作正常

我似乎无法让 Python curses 模块显示颜色,而 ncurses C 库工作正常。这是一个应该可以工作的简单脚本:

我只能看到“按任意键退出”。我知道由于换行而正在编写“Hello world”,但我看不到文本。我尝试了各种颜色对,但只有 0,即白色,有效。

不使用包装,即

没有帮助。

我在黑色背景的 XTerm(312) 和白色背景的 urxvt v9.20 上对其进行了测试。我在 Debian jessie 上,使用 bash 和 Python 2.7。

我运行了一个使用 ncurses 的旧 C 脚本,它可以很好地显示颜色,所以我假设我做错了什么或者 python 库有问题。我下载了一个名为 colortest-python 的包,它也能够显示颜色,尽管它不使用 curses 这样做(仅测试终端是否能够显示颜色)。

0 投票
1 回答
449 浏览

python - lightdm 启动脚本使用 curses 更改树莓派上的语言环境

我编写了一个脚本,它使用 python curses 允许我更改/etc/default/locale树莓派上的语言环境(编辑)。它有一个基本菜单,允许我选择语言。

我想在 lxde 会话开始之前运行这个脚本。我已经尝试编辑该/etc/lightdm/lightdm.conf文件,但是当我这样做时,pi 根本无法启动,它只有一个带有闪烁光标的黑屏。

我以正确的方式接近这个吗?有没有更好的方法在 lxde 启动之前运行交互式 python 诅咒?

0 投票
1 回答
1040 浏览

python - 将诅咒窗口输出转储到python中的文件

我正在尝试将 curses 窗口的输出转储到一个文件中而不在标准输出上显示它。目前我正在使用 addstr() 函数在标准输出上打印,最后我正在调用 instr() 函数将整个屏幕转储到文件中。在某些情况下,ncurses 在 xterm 上无法正常工作,因此我需要将输出重定向到文件而不实际将其打印到标准输出上。我想过使用记录器模块,但我失去了 addstr() 提供的颜色编码。实现这一目标的最佳方法是什么?

例如:

如果我运行以下命令

它应该显示在标准输出上,当我运行命令时

它应该转储到文件而不显示在标准输出上。addstr() 是否需要额外的参数来确定输出应该是文件还是标准输出?

0 投票
2 回答
2714 浏览

python - Python Curses - 模块'curses'没有属性'LINES'

我正在查看书中的一些源代码,并注意到某些代码似乎不在当前的 Python2.7 API 中。curses根据这段代码,该模块应该有一个常量变量被称为LINES和另一个被称为COLS。我打开一个 Python 交互式终端,看到没有变量或方法COLSLINES

我的问题是:这段代码是如何工作的?

0 投票
2 回答
290 浏览

python - Why use curses.ascii.islower?

I've just recently stumbled upon curses.ascii.islower(). It checks if the passed character is lower case. What is the benefit in using this function as opposed to str.islower()? Yes, it requires a conversion of a ASCII character to string object, which adds overhead. But other than that are there any advantages?

One disadvantage I found is the need for extra library, which may or may not be available.

0 投票
1 回答
1864 浏览

python - 如何使用诅咒滚动?

如何使用诅咒滚动?我尝试了以下方法,但失败了:

该错误没有提供太多信息:

我在 OS X 和 xterm(OS X)中都尝试了终端应用程序,但两种情况下的错误都是相同的。