【问题标题】:Autocompletion of Commands of Python console App on Windows and LinuxWindows 和 Linux 上 Python 控制台 App 的命令自动补全
【发布时间】:2021-10-20 10:37:13
【问题描述】:

我正在尝试构建应该在 Windows 和 Linux 上运行的 Python 交互式控制台应用程序。我希望它能够使用选项卡自动完成命令。它看起来像 cmd 是一个很好的工具,但它使用 readline,它只在 Linux 下可用。阅读相关问题我发现有一个 Windows 替代 readline - pyreadline。但是它的文档说它只在 Windows 下进行了测试,这意味着它不适合 Linux。而且我真的无法弄清楚如何让 cmd 与 pyreadline 一起工作。

我想要完成的一个例子: 命令:测试、读取、写入。当用户写入 t 并按下 tab 时,该命令应该完成以进行测试。

该应用还应与 Python 2.7 和 Python 3 兼容。

如果您对此有任何想法,请告诉我!

【问题讨论】:

标签: python linux windows console readline


【解决方案1】:

您可能会在此线程中找到一些想法: How to code autocompletion in python?

另一种方法是使用Enter command: 之类的内容获取用户的输入,如果他们输入't',则显示带有Enter command [test]: 的输入,其中括号中的值是默认值。如果您的命令数量有限,则不是那么流畅,但功能强大。

要根据用户的操作系统发出不同的命令,请使用 platform.system()。这是一个清除终端屏幕的示例。

import os
import platform

def clear_screen():

    os_type = platform.system()

    if((os_type == 'Linux') or (os_type == 'Darwin')):  
        # 'Darwin' includes Apple Macs
        return os.system('clear')

    elif(os_type == 'Windows'):
        return os.system('cls')

    else:
        print('Sorry, your operating system is not supported.')

【讨论】:

    猜你喜欢
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    相关资源
    最近更新 更多