问题标签 [python-cmd]
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 - 如何在 python cmd 中清除屏幕?
如何从 python cmd 中的以前结果中清除屏幕?我想在循环的每一级清除屏幕,我的意思是如何清除结果并打印新的而不是那个?
python - Python Cmd:如何编辑最后一个命令
我正在开发一个基于 Cmd Python 模块的小型命令行应用程序。我看不到如何在控制台提示符中显示最后一个命令,以便用户可以对其进行编辑并重新提交。
问题不在于如何存储最后一个命令。它是关于如何在提示中显示并允许用户编辑它
python - python cmd模块退出快捷方式
使用 pythoncmd
模块,我希望能够使用 Ctrl+D 退出命令行应用程序。但是,默认行为打印^D
而不是退出应用程序。
阅读文档,我似乎无法找到一种方法。有什么提示吗?
python - 在 Python cmd 模块中处理 CTRL-C
我使用 cmd 模块编写了一个 Python 3.5 应用程序。我想实现的最后一件事是正确处理 CTRL-C (sigint) 信号。我希望它的行为或多或少像 Bash 那样:
- 在光标所在的点打印 ^C
- 清除缓冲区以便删除输入文本
- 跳到下一行,打印提示,等待输入
基本上:
这是作为可运行示例的简化代码:
这几乎可以工作。当我按 CTRL-C 时,^C 会打印在光标处,但我仍然必须按 Enter。然后,该precmd
方法注意到self._interrupted
处理程序设置的标志,并返回一个空行。这是我所能接受的,但我想以某种方式不必按该输入。
我想我需要以某种方式强制input()
返回,有人有想法吗?
python - python cmd模块中的持久历史记录
是否有任何方法可以从 Python 配置 CMD 模块以保持持久的历史记录,即使在交互式 shell 关闭后也是如此?
当我按下向上和向下键时,我想访问以前在运行 python 脚本的情况下输入到 shell 中的命令以及我在此会话期间刚刚输入的命令。
如果它有任何帮助 cmd 使用set_completer
从readline 模块导入的
python-3.x - 在用户按下输入之前跟踪当前输入
我正在使用 Python 的cmd
模块来处理终端输入循环。
我有一个在后台运行的线程,当它收到消息时会在终端中打印出一些东西。这些消息破坏了视觉用户输入:
我在这里问了一个相关问题,基本上被告知避免破坏用户输入的一种方法是跟踪用户输入,这样当收到消息时,我可以打印消息并重新打印用户输入。当我问这个问题时,我没有使用该cmd
模块。
使用该cmd
模块时,我将如何跟踪用户当前键入的内容,以便之后可以重新打印?
python - 在 Python 中实例化嵌套的 Cmd 解释器
您好我正在寻找使用 Cmd 模块在 Python 中创建嵌套解释器。
我设置了一个动态模块加载,因为我希望我的项目易于扩展(即将一个新的 python 文件添加到一个文件夹中,并且无需更改能够加载它的主代码)。
我的嵌套解释器当前设置如下:
这是必要的,因为为了创建嵌套解释器,我必须将 MainConsole 作为第二个变量传递给 SubConsole 类。这样做的问题是,这样我只能在这个方法中创建类,并且我将无法添加一个新的控制台模块文件,我可以在没有此方法中的定义的情况下动态加载该文件。
有什么解决方法吗?
python - Twisted 和命令行界面
我有一个程序,我想做两件事:
与服务器交互并响应来自服务器的事件。我正在使用扭曲做这个。
为用户提供命令行提示,他可以在其中发出其他命令。到目前为止,我正在为此使用 python cmd 模块。
除了拥有两个线程之外似乎别无选择,因为 readline 只有一个阻塞接口并且需要处理诸如自动完成之类的事情。另一方面,Twisted 必须连续运行反应器。
现在的问题是,为此处理 Ctrl-C 似乎非常困难。简单的解决方案似乎是让命令行在主线程中运行,并且只使用 reactor.callFromThread 与程序的其余部分进行每次交互。这很容易,因为覆盖 Cmd.onecmd 可以以通用方式执行此操作。但是,当我尝试在线程中生成反应器时
我立即得到一个例外
每个使用twisted 的人都坚持twisted reactor 应该在主线程中运行,因为这样会是一个更好的设计。
当尝试这样做并在主线程中扭曲运行时,它将捕获 Ctrl-C,退出反应器,我被一个不退出的线程卡住,因为在 cmdloop 中对 input() 的调用不会返回. 我尝试寻找解决方案以及如何摆脱 input() 调用,但每个人都坚持命令行界面应该在主线程中运行。
我发现的一个可能的选择是将twisted作为主线程运行并使输入线程成为守护进程,因此它应该在反应器退出时退出,但是守护进程标志没有改变任何东西(当主线程退出时线程没有退出) . 此外,这可能很危险,因为线程在被杀死时可能正在做一些重要的事情。
有没有办法解决这个问题?
python - Python 3 cmd.Cmd 在 do_function() 后追加空格:完成
我正在将 cmd.Cmd 库用于我正在构建的命令行工具,并且对使用 tab 自动完成命令感到有点恼火,命令行留在命令的末尾而不是附加空格轻松方便地添加参数。
和
给用户;
而我想看看;
与空间,所以我可以更容易地添加一个值(在这种情况下)打印。
有没有办法在制表符完成后强制附加空格?我假设我可以在 cmd.Cmd 类中设置一个参数来强制/允许这个......但我找不到任何文档。
提前致谢。