【问题标题】:Building Python Command Prompt Interface构建 Python 命令提示符界面
【发布时间】:2017-05-12 18:06:03
【问题描述】:

有没有办法构建一个简单的 Python 命令提示符界面。它只需要输入文本并输出一些东西。

最后界面应该是这样的:

从 Pycharm 2017 开始,我收到这些错误。

Traceback(最近一次调用最后一次): 文件“C:/Users/Main/Desktop/Py Sandbox/Keylogger/test.py”,第 4 行,在 user_input = prompt('>') 文件“C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\shortcuts.py”,第 548 行,提示符 事件循环=事件循环) 文件“C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\shortcuts.py”,第 576 行,在 run_application 输出=create_output(true_color=true_color)) 文件“C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\shortcuts.py”,第 118 行,在 create_output 返回 Win32 输出(标准输出) init 中的文件“C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\terminal\win32_output.py”,第 80 行 信息 = self.get_win32_screen_buffer_info() 文件“C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\terminal\win32_output.py”,第 172 行,在 get_win32_screen_buffer_info 引发 NoConsoleScreenBufferError prompt_toolkit.terminal.win32_output.NoConsoleScreenBufferError:找不到 Windows 控制台。你在运行 cmd.exe 吗?

从默认的 Python IDLE 我得到这个 eroor:

Traceback(最近一次调用最后一次):文件 “C:/Users/Main/Desktop/adusgisdhui.py”,第 4 行,在 user_input = prompt('>') 文件 "C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\shortcuts.py", 第 548 行,提示 eventloop=eventloop) 文件 "C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\shortcuts.py", 第 576 行,在 run_application output=create_output(true_color=true_color)) 文件 "C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\shortcuts.py", 第 118 行,在 create_output 中 返回 Win32Output(stdout) 文件 "C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\terminal\win32_output.py", 第 80 行,在 init 中 info = self.get_win32_screen_buffer_info() 文件“C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\terminal\win32_output.py”, 第 162 行,在 get_win32_screen_buffer_info self.flush() 文件 "C:\Users\Main\AppData\Local\Programs\Python\Python35\lib\site-packages\prompt_toolkit\terminal\win32_output.py", 第 288 行,同花顺 self.stdout.flush() AttributeError: 'NoneType' object has no attribute 'flush'

【问题讨论】:

标签: python python-3.x


【解决方案1】:

这是一篇很棒的文章,关于为您的 python 程序构建命令行界面CLI Python。其中一种方法是使用prompt_toolkit

from prompt_toolkit import prompt

while 1:
    user_input = prompt('>')
    print(user_input)

然后,这将不断要求用户输入。它还具有命令历史记录和自动建议等功能。

【讨论】:

  • 正是我需要的,但我似乎无法在我的电脑上运行。
  • 我在问题中提到的错误是因为 Stackoverflow 不允许太长的 cmets。
【解决方案2】:

非常基本的代码

while 1:
    userinput = input(">>")

if userinput == "help":
    print("You asked for help")
elif ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    相关资源
    最近更新 更多