【问题标题】:putting multiple input line to the console | curses将多个输入行放到控制台|诅咒
【发布时间】:2013-02-28 23:56:43
【问题描述】:

我已经开始用 Python 语言编写控制台。这是惊人的。但是,我尝试使用curses 创建输入框,如下所示。我一直坚持如何放置输入线并将输入写入控制台的输入位置。你能帮我做这部分吗?我忘了问_是否可以使用 curses 创建如下所示的输入框?如果没有,我应该使用什么?

我只想看方法/算法,而不是完整的代码。

                  sketch of console 

 |------------------------------------------------------|
 |                                                      |
 |                                                      |
 |                                                      |
 |                                                      |
 |     username  ===>                                   | // user can write name
 |     password  ===>                                   | // user can write password
 |     procedure ===>                                   | // user can write proc name
 |                                                      |
 |                                                      |
 |                                                      |
 |                                                      |
 |                                                      |
 |------------------------------------------------------|

我正在Linux平台上开发(Ubuntu 12.04 lts)

【问题讨论】:

  • @GeorgeStocker 为什么我的答案被删除了? OP让我(在一个现已删除的问题中)把它放在那里。不,我没有把画框的细节放上curses,但是我给了他他需要的帮助……
  • @GeorgeStocker 我想知道它被删除的原因。
  • 你想要的是ncurses forms library。不幸的是,python 绑定不是 python 标准库的一部分。不知道其他地方有没有。
  • @Craig 可以用 Python 移植吗?如果是,你有 Python 的教程链接吗?可以分享给我吗?
  • 我不知道表单库的 python 绑定。你需要建立你自己的。我只在 C 和 C++ 中使用过它。

标签: python unix posix curses


【解决方案1】:

不知怎的,我之前的回答被删除了……

要在 Python 中获取用户输入,请将变量分配给内置 input() 函数的结果:

user_input = input("Type something: ")
print("You typed: " + user_input)

在 Python 2 中,raw_input() 函数也可用,并且优先于 input()

要在不回显到屏幕的情况下获取密码,请使用getpass 模块:

import getpass
user_password = getpass.getpass("Enter password: ")

我对@9​​87654331@ 不太熟悉,但您似乎可以定位光标,然后调用input()getpass.getpass()。只需简要阅读documentation,显然有一些选项可以随意打开和关闭屏幕回声,所以这些可能是更好的选择。阅读精美手册:)

【讨论】:

  • 将 input() 与 curses 混合几乎肯定会导致问题。 curses 希望控制所有输入和输出以正确管理屏幕,因为 input() 绕过 curses 你会得到未定义的行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-21
  • 2011-06-08
  • 2012-04-30
相关资源
最近更新 更多