これはばかげた質問かもしれませんが、答えが見つからないので、私はそれを尋ねなければなりません。
インタラクティブなPythonで、次のメッセージを処理したいと思います。
>>> message = sys.stdin.readlines()
すべて正常に動作しますが、入力を取得しないようにしてメッセージ変数に保存するにはどうすればよいですか?ctrl + cで停止すると、プロセス全体が停止するため、どこにも保存する入力がありません。見つけられない簡単な答えがあると思います...
これはばかげた質問かもしれませんが、答えが見つからないので、私はそれを尋ねなければなりません。
インタラクティブなPythonで、次のメッセージを処理したいと思います。
>>> message = sys.stdin.readlines()
すべて正常に動作しますが、入力を取得しないようにしてメッセージ変数に保存するにはどうすればよいですか?ctrl + cで停止すると、プロセス全体が停止するため、どこにも保存する入力がありません。見つけられない簡単な答えがあると思います...
For unix based system :
Hello, you can tape : Ctrld
Ctrld closes the standard input (stdin) by sending EOF.
Example :
>>> 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']
For Windows :
To send EOF on Windows, you can replace Ctrld by Ctrlz
これは古い質問ですが、 Windowsとさまざまなキーボードレイアウトに関する更新が必要です。
CTRL+ZもCTRL+D **もWindowsで機能せず、何が起こっているのか迷っている場合は、次のようにします。
これはやや奇妙で直感に反します。少し前にキーのレイアウトを変更してポーランド語の文字を含めましたが、すべての共通キーは変更されていません。キーボードを通常使用すると、zはzにマップされます。通常、ctrl + zはキーボードで何も行わないため、変更しないでください。 。しかし、明らかにcmdでは動作が異なります。ctrlとzの間にデフォルトのリンクを設定するには、デフォルトのレイアウトに切り替えるか、コントロールyを使用してEOFを送信する必要があります。
Use CTRL-D
.
message = sys.stdin.readlines()
abc
def
<CTRL-D>
# message == ['abc\n', 'def\n']
Windowsでは、CTRL+Zを押してEnterキーを押すだけです。
Macユーザーの場合は、コマンド+Dを使用してください。動作します。