python - 如何禁用在 Python 3 中触发输入的回车键?
问题描述
所以我正在尝试制作一个简单的单词计数程序,我希望它能够将输入键作为它正在阅读的文章的一部分而不会被触发。(如果有人不明白,如果我复制粘贴一个包含回车字符的段落,python 将简单地停止在回车字符处接收字符串,因为它认为用户按下了回车,并且输入不完整) . 我认为我不能很好地解释这一点,因此请尝试将其复制粘贴到代码中:
第 1 行:My name is Jack.
第 2 行:Jack is my name.
它只接受第一行。这个问题有解决方法吗?还是我应该采取完全不同的方法?
代码:
#Count words in an essay
import time
SA = input('Copy paste essay: \n')
word_list = SA.split(' ')
print (str(len(word_list)) + ' is the number of words in your essay')
解决方案
在 python 3.x 中,您可以使用sys.stdin.read()
在控制台上读取多行输入。
>>> import sys
>>> text = sys.stdin.read()
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
^Z
>>> print(text)
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
>>>
要退出输入模式,您必须使用Ctrl
+Z
在上面的 shell 片段中显示为^Z
.
推荐阅读
- elasticsearch - 使用两个过滤器,字段的值和时间戳在 kibana 中的字符串字段上创建 URL
- regex - 如何匹配以 2 位数字结尾的 10 字符字符串?
- jquery - 使用 jquery 从复选框形成 API 调用请求
- javascript - 对象的属性未定义,即使对象上的 console.log 显示属性值
- javascript - 如何在某些部分隐藏/显示固定元素?
- ruby-on-rails - 葡萄如何动态设置参数值
- xpages - 将多个 NotesRichText 字段附加到文件下载控件
- java - 如何在eclipse`中做项目结构“src/main/java”?
- java - Vaadin WebApplication - 可以离线模式吗?
- arrays - 将十六进制值的字符串转换为 []byte 表示