以不显示换行符结束的 Python 输入

Posted

技术标签:

【中文标题】以不显示换行符结束的 Python 输入【英文标题】:Python input that ends without showing a newline 【发布时间】:2011-03-07 13:34:20 【问题描述】:

是否有一个类似于 raw_input 的 python 函数,但是当你按下回车时它不显示换行符。例如,当您在 Forth 提示符中按 enter 时,它不会显示换行符。编辑: 如果我使用代码:

data = raw_input('Prompt: ')
print data

输出可能是:

Prompt: Hello
Hello

因为当我按下回车键时它会打印一个换行符。我想要一个类似于 raw_input 的函数,它不显示换行符。因此,如果我想要的函数被称为 special_input 并且我使用了代码:

data = special_input('Prompt: ')
print data

输出会是这样的:

Prompt: Hello Hello

【问题讨论】:

我不确定 raw_input,但如果您在例如 ( print "Hello",) 之后使用逗号,打印函数将不包含换行符 在 Python 3 以下的版本中,print 不是函数,而是关键字,因此添加逗号会改变事情,因为它具有特殊的语法。 raw_input 是一个函数,因此它没有关键字可以具有的特殊语法。 How to print in Python without newline or space? 的可能重复项 【参考方案1】:

是的,还有其他方法可以读取 raw_input 之类的行

你可以使用sys.stdin():

import sys
line = sys.stdin.readline()

或者如果你想获取密码也可以使用getpass.getpass():

import getpass
line = getpass.getpass()

但如果你想要更花哨的东西,你需要使用curses

【讨论】:

以上是关于以不显示换行符结束的 Python 输入的主要内容,如果未能解决你的问题,请参考以下文章

Python使用selenium以不显示浏览器方式爬虫

Linux 终端:输入反馈消失,不显示换行符

头歌Python中显示回车是啥意思啊?

如何使 jqueryUI datepicker 以不同于显示的格式提交?

如何在多值参数上放置过滤器以不显示下拉列表中的所有值

使 String.format("%s", arg) 以不同于 "null" 的方式显示空值参数