これはばかげた質問かもしれませんが、答えが見つからないので質問しなければなりません。
インタラクティブ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の場合:
EOF Windowsで送信するには、 Ctrld 沿って Ctrlz
これは古い質問ですが、Windowsとさまざまなキーボードレイアウトに関する更新が必要です。
WindowsでCTRL + ZもCTRL + D **も機能しない場合そして、あなたは何が起こっているのかさまよっています:
これはやや奇妙で直観に反します。少し前にポリッシュ文字を含めるようにキーレイアウトを変更しましたが、すべての共通キーは変更されていません。キーボードを通常使用すると、zは引き続きzにマップされます。通常、キーボードでctrl + zは何も実行しないため、変更しないでください。 。しかし、cmdでは明らかに動作が異なります。ctrlとzの間にデフォルトのリンクを設定するには、デフォルトのレイアウトに切り替えるか、コントロールyを使用してEOFを送信する必要があります。
使用する CTRL-D
。
message = sys.stdin.readlines()
abc
def
<CTRL-D>
# message == ['abc\n', 'def\n']
Windowsでは、CTRL + Zを実行してEnterキーを押すだけです。