问题标签 [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.

0 投票
1 回答
2063 浏览

python - Python Twisted 与 Cmd 模块的集成

我喜欢 Python 的TwistedCmd。我想一起使用它们。

我做了一些工作,但到目前为止,我还没有弄清楚如何使制表符完成工作,因为我没有看到如何在 Twisted 的 LineReceiver 中立即(不按 Enter)接收制表符按键事件。

到目前为止,这是我的代码:

除了制表符完成之外,这有点工作。我可以输入“帮助”之类的命令,然后 Cmd 模块将打印结果。但是我失去了 Cmd 模块的漂亮的制表符完成功能,因为 Twisted 一次缓冲一行。我尝试设置LineProcessor.delimiter为空字符串,但无济于事。也许我需要找一些其他的 Twisted 来代替 LineReceiver?或者也许有一种更简单的方法可以避免我不得不一个一个地处理每个字符?

我不能单独使用 Cmd,因为我想让它成为一个网络应用程序,其中一些命令将导致发送数据,而从网络接收数据将异步发生(并显示给用户)。

因此,无论我们是从上面的代码还是完全不同的代码开始,我都想用 Python 构建一个漂亮、友好的终端应用程序,它可以响应网络事件以及 tab 补全。我希望我可以使用已经存在的东西,而不必自己实施太多。

0 投票
1 回答
981 浏览

python - do_help() 函数的 Python cmd 动态文档字符串

我正在开发一个 Pythonic 命令行“抽认卡”应用程序,以帮助用户学习不同的语言。我想使用 Python 的 cmd 库来加速开发——特别感兴趣的是 cmd.Cmd 类的 do_help() 方法,它打印出类的用户方法的文档字符串。但是,由于此应用程序的多语言特性,我希望能够放入特定语言的文档字符串。

我读了这个关于使用装饰器的 SO question,但我对装饰器知之甚少,我想知道它们是否适合我的特定困境,然后再投入大量时间学习它们。

你们有什么感想?处理这种情况的最佳方法是什么?

如果您想了解有关我的问题的更多信息,请告诉我。

0 投票
2 回答
4862 浏览

python - Python 使用 argparse 和 cmd

有没有办法使用argparse挂钩的模块作为接口中每个提示的解释器继承自cmd

我希望我的 cmd 接口以与解释line在运行时在 bash shell 上传递的选项和参数相同的方式解释典型参数,使用可选参数-以及位置参数。

0 投票
0 回答
652 浏览

python - 如何远程/以编程方式调用 Python Cmd 实例,替换标准输入和标准输出管道?

我希望有一个Python Cmd实例在单独的线程中运行,并且能够从我的程序的其他部分写入输入和读取输出。在 Cmd 的构造函数中,可以指定 stdin(default: sys.stdin) 和 stdout(default sys.stdout)。我期待我可以使用StringIO模块进行读写,但 Cmd 只是读取初始字符串,到达 EOF 并退出。我需要与 sys.stdin 相同的行为,因此 readline() 将阻塞,直到有输入要读取。

我做了这门课,它可以按我的意愿工作:

问题:

以上是实现我需要的正常方式吗?是否有任何标准类可用于管道标准输入和标准输出?我觉得我错过了一些东西。

0 投票
0 回答
423 浏览

python - Python 2.7 到 exe 使用 py2exe 问题

我使用 py2exe 和在教程网站上找到的简单测试脚本成功创建了一个 .exe。但是,我使用的脚本似乎不起作用。我的代码使用带有两个 .csv 输入的 csv 模块和 dict 阅读器。

我运行 python setup.py p2exe 命令,我得到一个命令提示符的闪现,但是在我可以读取任何内容之前它就消失了。一旦它消失,如果我只是在 python 中运行脚本,我就没有正确的 .csv 文件输出。

任何人都可以提供任何建议或尝试的东西吗?或者有没有办法让那个讨厌的 cmd 窗口保持打开足够长的时间让我看到它说什么?

谢谢。我的脚本如下。

0 投票
1 回答
132 浏览

python - cmd.Cmd 对象不返回任何值

我目前正在使用 Python 的cmd模块创建一个基于命令的游戏。

在某个时刻,我的cmd.Cmd对象会嵌套。如果我说我正在运行命令提示符A,那么在某个时候B会在其中创建一个新提示符A。我想,当我B完成时,再次返回某个值A。我所有的试验都以内部命令提示返回而告终None。为了更好地理解这种情况,我尝试简化问题并尝试从cmd.Cmd对象中获取返回值。这就是我所拥有的:

然后在我已经尝试过的外壳上:

我似乎无法让cmd.Cmd对象返回任何值。怎么能做到这一点,或者由于某种我不知道的原因是不可能的?

0 投票
1 回答
598 浏览

shell - python交互式shell使用没有输入参数的cmd重复语句

python新手,我正在使用cmd开发一个交互式shell,它接受定义的函数和参数,并以if/then格式返回值。下面的例子。但是我的问题是,每次用户键入一个函数并且我向用户返回一些东西时,如果他们只是按 Enter 键,那么他们就会收到最后提供的输出。

例如下面的代码......但基本上如果用户没有为此输入参数或函数,我只想显示“”或空白空间。我认为 else pass 参数会为我做到这一点,但显然不是。我尝试过 if 和 elif,结果相同。

带有“test arp”的示例输出,只需按回车键即可返回上一个已按下的参数:

示例代码: #!/usr/bin/env python

0 投票
1 回答
650 浏览

python - Linux 上的 Python cmd 不会自动完成特殊字符或符号

Python 的基于 readline 的 cmd 模块对诸如 等字符-+解析方式与字母数字 ASCII 字符的解析方式不同。这似乎只是 linux 特定的问题,因为它似乎在 Mac OS 上按预期工作。

示例代码

Mac OS 上的预期行为

Linux 上的错误行为

我尝试添加-到 cmd.Cmd.identchars,但没有帮助。

为什么 Mac OS 和 Linux 之间的 readline 解析存在差异,即使两者都使用 GNU readline:

苹果系统:

Linux:

谢谢!

0 投票
3 回答
1255 浏览

python - python cmd模块基于上下文的完成

在 pythoncmd模块中,当我按下 TAB 按钮时,我会得到可用且我在cmd.Cmd课堂上定义的可能命令列表。我的问题是是否可以根据上下文显示一组命令,例如在 Cisco 路由器 CLI 中?

0 投票
2 回答
1991 浏览

python - 基于 Python 的 cmd 模块为交互式 shell 创建自动化测试

我正在使用 Python 3 和 cmd 模块构建交互式外壳。我已经使用 py.test 编写了简单的单元测试来测试各个函数,例如 do_* 函数。我想通过模拟用户的输入来创建更全面的测试,这些测试实际上与 shell 本身交互。例如,我如何测试以下模拟会话: