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