首页 > 解决方案 > 如何禁用在 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')

标签: pythonpython-3.xinputline-breaks

解决方案


在 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.


推荐阅读