【发布时间】:2013-05-10 20:01:22
【问题描述】:
我正在 Python 3 中制作一个基本实用程序,用户可以在其中输入命令并将反馈打印到控制台中。使用 input() 或 sys.stdin.readline() 函数输入数据时,命令行会话可能看起来像这样(包括 \r 和 \n 字符)
1. What is your name:\n
2. <user input>\n
3. Your name is <variable>.\n
但是,我想在用户按回车键后显示\r 字符而不是\n 字符,如第 2 行所示。用户输入所有内容并按回车键后,它看起来像这样
1. What is your name:\n
2. Your name is <variable>.\n
(因为第 2 行在输入数据后会有一个\r 字符,将光标返回到最左边)
有谁知道我可以做到这一点的方法吗?
【问题讨论】:
-
所以您想隐藏用户输入的内容并打印下一行?
-
@cmd 基本上,是的。同时也在同一行上打印下一行。 (这就是
\b字符不起作用的原因) -
鉴于您的其他问题,我假设您的目标是 Windows?
-
@ThomasFenzl 是的,我的目标是 Windows,尽管跨平台的方法会更好。
-
也许使用 getpass,这会在他们键入时隐藏他们的输入。或在输入后清除屏幕。我不认为 python 对您正在查看的细节进行 c 光标操作。我知道你可以用 curses 很好地控制光标
标签: python command-line input python-3.x