prompt_toolkit是一个能够建立强大的交互式命令行和终端应用的python库。 详情可以阅读 documentation on readthedocs。 Ptpython ptpython是一个是交互式的Python解析器,建立在prompt_toolkit之上。 prompt_toolkit 特性 prompt_toolkit可以代替GNU readline,但它的功能远远不止。 一些特性如下:
创建问题和特性都是自由的,如果你有想分享给他人的好的补丁,可以创建一个pull request。 对Windows操作系统的支持 prompt_toolkit是跨平台的,你创建在上面的任何东西在Unix和Windows系统中应该都可以运行良好。在Windows中,它使用一种不同的数据循环(使用WaitForMultipleObjects 而不是select)和另外的输入输出系统(使用Win32API而不是伪终端和VT100)。 另一点值得注意的是“尽可能努力”的成就。Unix和Windows终端都有他们的限制。但是一般而言,Unix上的体验仍会好一点。 对Windows来说,推荐使用cmder 或者 conemu。 安装 使用Conda,则 入门 这个库最简单的一个例子如下: 更多复杂的例子,查看“examples”目录。所有例子证明的都只是一个东西。并且,不要害怕去看源代码。提示功能的实现是一个好的开始。 Python2使用时注意:所有的字符串将为unicode字符串。所以,要么你在所有的字符串前面添加“u”,要么就在例子代码前导入uincode库( from __future__ import unicode_literals)。 使用prompt_toolkit的项目 解析器:
全屏应用: (想把你自己的项目列在这里?请创建一个GuitHub问题。) 代码哲学 prompt-toolkit的源代码应是可读的、简洁的和高效的。我们倾向于输入输出类型明确指定的聚焦于每一项任务的短小函数。我们更倾向于组合而不是继承,因为继承会导致同样一个对象中功能太多。我们倾向于在可能的情形下使用不可变对象(对象在初始化后不再变化)。可重用性是重要的。我们绝对避免拥有一个不断变化的全局状态,但在同一进程中拥有同一个代码的多个独立的实例是可以的。代码的体系结构应当分为:给定了原始操作和数据结构的所有正确的灵活组合后的底层操作;而在更高水平中,应该是一个更简单、随时可用和胜任大部分情况的API。对算法和效率的思考是很重要的,但是要避免对其草率的优化。 特别感谢 英文原文:https://github.com/jonathanslenders/python-prompt-toolkit |
|