向控制台输入多行 | curses

2 投票
1 回答
718 浏览
提问于 2025-04-17 18:54

我开始用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)

1 个回答

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: ")

我对 curses 不是很熟悉,但看起来你可以先移动光标,然后再调用 input()getpass.getpass()。我简单看了一下 文档,似乎有选项可以随意开启或关闭屏幕回显,所以这些可能是更好的选择。记得好好阅读手册哦 :)

撰写回答