Python命令行交互库?

时间:2012-10-06 09:47:09

标签: python

我想开发一个小型Python应用程序,通过控制台/命令行与用户交互。有没有好的库可以用来获取用户输入并以漂亮的方式显示输出?我尝试搜索,但我发现的大多数是命令行参数处理,没有看到shell中用户交互的任何内容。

应该是跨平台(Windows和Linux)

3 个答案:

答案 0 :(得分:10)

一个非常优秀的库是cmd,它是python标准库的一部分。它是跨平台的Windows,Linux,Mac。你只需要实现一个类,它提供了许多很棒的功能:

  1. 提供了受支持的命令列表(最终将它们作为方法实现)
  2. 可以调用以解释其中一个命令的帮助命令
  3. 处理整个输入命令,检查语法和调用方法命令循环周期。
  4. 用户可以保存他们在交互式会话中运行的命令,并将其作为脚本运行。看看下面的例子。
  5. 如果您取turtle shell example并将其保存为turtleshell.py并将以下龟文件保存为circles.txt

    circle 20
    circle 50
    circle 100
    bye
    

    然后您可以使用以下命令运行乌龟脚本:

    cat circles.txt | ./turtleshell.py
    

    所以在文档中显示的简单示例中,开发人员基本上制作了一个简单的迷你语言,可以用作turtle module的更简单的界面,从而更容易向孩子们介绍编程。上面的例子来自python3文档,因为它们在他们的文档中包含了一个详细的例子,这些例子在2.7文档中没有,但cmd在python 2.3及更高版本中可用并且功能齐全。

答案 1 :(得分:6)

您可以使用curses library控制Unix终端。该库本质上允许您构建一个简单的终端GUI。

如果您需要更多内容,请查看Urwid。 Urwid为挑剔的终端GUI开发人员提供了更复杂的GUI小部件。 : - )

答案 2 :(得分:2)

根据文档,

Curses是Unix环境中使用最广泛的。对于Windows,您可以查看Windows Console DriverWConio - 适用于Python的Windows CONsole I / O或Wcurses。我不太喜欢跨平台的控制台库。

如果您的Windows用户是CLI用户,他们可能拥有cygwin,但是如果您问我,那么curses仍然是最佳选择。