这可能是一个愚蠢的问题,但由于我找不到答案,我不得不问它。
在交互式python中,我想处理一条消息:
>>> message = sys.stdin.readlines()
一切正常,但是...如何阻止它获取输入并将其保存到消息变量中?使用ctrl + c停止会停止整个过程,因此无需在任何地方保存输入。我想有一个简单的答案,我找不到......
答案 0 :(得分:45)
对于基于unix的系统:
你好,你可以录音: Ctrl d
Ctrl d 通过发送EOF来关闭标准输入(stdin)。
示例:
>>> import sys
>>> message = sys.stdin.readlines()
Hello
World
My
Name
Is
James
Bond
# <ctrl-d> EOF sent
>>> print message
['Hello\n', 'World\n', 'My\n', 'Name\n', 'Is\n', 'James\n', 'Bond\n']
适用于Windows:
要在Windows上发送EOF,您可以通过 Ctrl z
替换 Ctrl d答案 1 :(得分:5)
这是一个老问题,但它需要有关 Windows和不同键盘布局的更新。
如果 CTRL + Z 和 CTRL + D **在Windows上都不适合,并且您正在徘徊正在进行的操作:
这有点奇怪和违反直觉。我前段时间更改了键布局以包含抛光字符,但所有常用键保持不变,当我正常使用键盘时z仍然映射到z,通常ctrl + z在我的键盘中什么都不做,所以我不应该更改。但显然在cmd中它的工作方式不同,为了在ctrl和z之间建立默认链接,我必须切换到默认布局,或者使用控件y来发送EOF。
答案 2 :(得分:4)
使用CTRL-D
。
message = sys.stdin.readlines()
abc
def
<CTRL-D>
# message == ['abc\n', 'def\n']
答案 3 :(得分:3)
在Windows上只需按CTRL + Z并按Enter键
答案 4 :(得分:1)
如果您是 Mac 用户,请使用 command + D。它有效!