问题标签 [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.
python - 在右下角调用 addch 时,curses 失败
我开始学习 Python 中的诅咒。我在 Mac OS X 上使用 Python 3.5。当我尝试在右下角写入时,程序崩溃并出现以下错误:
示例程序是:
我有一种感觉,我错过了一些明显的东西,但我不知道是什么。
python - 标准库中某处是否有 ANSI 颜色转义码列表?
我写了很多小帮助脚本,这些脚本通常会在终端中打印彩色文本。为了简化它们的打包和分发,我经常希望这些小脚本没有任何依赖关系。
因此,我在脚本中复制了很多这样的数据:
这些数据是否存在于核心库中的任何地方?我四处寻找,发现它curses
有一些COLOR_*
常量,但它们只是整数,它们如何转换为 ANSI 转义码并不明显。
我已经知道 , , 之类的模块,termcolor
所以请不要建议使用这些模块 - 我只想依赖标准库。 colorama
blessings
python - 在线程中运行子进程会干扰键盘输入
我一直在研究一些用于subprocess.checkoutput
通过 ssh 在远程服务器上执行命令的代码:
该命令由许多与不同服务器通信的线程运行,几乎没有共享资源,并且据我所知工作正常。
然而,在这段代码之上,我曾经curses
为我编写了一个基本的 UI 来监控我的代码在做什么。我能够以类似于 VIM 或 EMACS 的方式使用键盘输入命令。但是,我注意到当我的代码执行上面的子进程行时,键盘输入变得非常不可靠和零星,需要多次重复按键才能在程序中注册。
这是因为子进程与threading
库配合得很好吗?如果没有,有谁知道可能导致此问题的原因是什么?
python-3.x - 将函数及其参数存储在字典中
我不喜欢 if/elif 语句看起来有多难看。switch/case 语句也好不到哪里去。我发现字典更容易阅读。现在我知道如果每个键绑定到不同的功能时如何处理它,这很容易。但这需要 8 个不同的移动函数(moveNE、moveN、moveNW 等)。所以我想要一个简单的 move_object 函数,它将方向作为参数。但是,我在让这段代码正常工作时遇到了问题,而且我不确定我做错了什么。这是有问题的代码。
一、字典:
现在,move_object 函数:
最后,应该调用 move_object 函数的代码:
键绑定在 Game Class init函数中定义,最后的代码块发生在 Game.main_loop()
我已经阅读了几次教程,但我无法弄清楚我做错了什么。我认为我在这里所拥有的会将 args 字典作为 **keywords 传递给 move_object() 函数,但它给了我一个参数错误(预期 2 个参数,收到 1 个)。
python - 当用户键入“q”时,我应该如何退出 python 脚本?
我正在尝试添加代码以在用户键入时正确退出我的 curses python 脚本q
。我不能仅仅这样做CTRL+C
,因为那样curses不会被正确地取消初始化。
我还没有找到一个很好的解决方案来获取具有超时的用户输入,因此在用户提供一些输入之前程序不会坐在那里。
有没有一种简单的方法可以创建第二个线程来处理用户输入并且可以请求主线程运行 de-init 函数?
python - 在 python 诅咒的新行上输出
我在python中使用curses模块通过读取文件来实时显示输出。字符串消息使用 addstr() 函数输出到控制台,但我无法在需要的地方打印到换行符。
示例代码:
上面并不是每次迭代都将字符串输出到新行(注意 addstr() 中的 \n)。相反,如果我调整终端窗口的大小,脚本会因错误而失败。
python - 如何从标准输入获取输入,使用诅咒显示某些内容并输出到标准输出?
我正在尝试制作一个从标准输入获取输入的python脚本,使用curses在终端中显示GUI,然后当用户完成交互时将结果输出到标准输出。这种行为的一个很好的例子是selecta,但它是用 ruby 编写的。
我不能让诅咒显示任何东西。这是我到目前为止尝试的最小示例(它只显示一个字符并等待一个字符):
当我尝试echo $(python3 show_a.py)
不显示任何内容但按任意键后显示其编号:
这样的事情甚至可以使用诅咒,如果是这样怎么做?
python-2.7 - inch([y,x]) 方法不适用于颜色对诅咒 Python
我正在使用 Curses 和 Python 2.7.12 开发基于终端窗口的游戏。到目前为止,游戏运行良好,只需要添加一个基本的战斗系统。但是,我对全黑的全白字符感到厌烦。所以,我想让@符号(玩家)红色,H(墙壁)灰色,C(宝箱)黄色,X(敌人)蓝色。但是,当我使用颜色对更改角色的颜色时,英寸方法不起作用,就像您可以穿过墙壁并且敌人不会杀死您并且胸部不会结束游戏一样,喜欢它应该。我的代码有点草率,因为这真的是我第一次真正在 Python 中做 OOP,而且,我大部分时间都是在晚上写的。请不要尝试修复代码中可能出错的其他内容或批评我,我' 我只是在这方面寻求帮助。我想从我的错误中吸取教训(除了这个,我真的想不通)并自己重新优化我的代码。先感谢您!
(注:我运行的是Windows 10,所以如果有的话,请进行必要的修改以使其在Mac/Linux上运行。注2:名为'map'的字符串是游戏的实际地图。它这么长的原因是因为它实际上是一个正方形的文本字符,所有输入点击都替换为 \n。大地图,不是我的错。)
同样,由于我没有 Mac 或 Linux,我不知道是否需要进行必要的更改才能完成这项工作。随意这样做。
python-3.x - 带有 curses 模块的 Python 3.5 错误(不支持)
我一直在尝试开始使用诅咒,我看到了这段代码:
但每当我运行它时,它都会显示以下消息:
不支持重定向。中止(断开连接)
我已经有了 curses 模块,而且我正在使用 Python 3.5。我也在使用 Wing IDE,所以我还需要安装什么东西才能使 IDE 支持诅咒吗?
python - 当终端的大小改变时,诅咒会打破 time.sleep()
我面临着我无法理解的行为。
这段代码将以 1 秒的间隔写入 24 个字符串,没关系。但是当我在执行过程中开始改变终端窗口的大小时,字符串会以比每秒 1 个字符串快得多的速度出现在屏幕上。您能否解释一下这种行为,并获得有关如何“保护”我的 time.sleep() 的建议?谢谢。
PS 没有诅咒 sleep() 工作正常。