Подтвердить что ты не робот

Как закончить вход sys.stdin.readlines()?

Это может быть глупый вопрос, но поскольку я не могу найти ответ, я должен его спросить.

В интерактивном python я хочу обработать сообщение, которое я получаю:

>>> message = sys.stdin.readlines()

Все работает отлично, но... как остановить его от ввода ввода и сохранить его в переменной сообщений? Остановка с помощью ctrl + c останавливает весь процесс, поэтому нет никаких данных для сохранения в любом месте. Я думаю, там простой ответ, который я просто не могу найти...

4b9b3361

Ответ 1

Для системы на основе unix:

Здравствуйте, вы можете использовать ленту: Ctrl d

Ctrl d закрывает стандартный ввод (stdin), отправив EOF.

Пример:

>>> 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, вы можете заменить Ctrl d на Ctrl z

Ответ 2

Используйте CTRL-D.

message = sys.stdin.readlines()
abc
def
<CTRL-D>

# message == ['abc\n', 'def\n']

Ответ 3

Это старый вопрос, но ему нужно обновить информацию о Windows и разных раскладках клавиатуры.

Если ни один CTRL + Z и CTRL + D ** не работает для вас в Windows, и вы блуждаете, что происходит:

  • проверьте, используете ли вы стандартную раскладку английской клавиатуры
  • Если у вас есть разная раскладка клавиатуры, отличная от стандартной, попробуйте переключить настройку клавиатуры на английский язык на языковой панели, затем попробуйте нажать ctrl + z после изменений.
  • Если вы все еще запутались, посмотрите на экран, что появляется в командной строке при нажатии ctrl + z. Какой символ вы видите? Когда я нажимал ctrl + z, я видел это: ^ Y, и когда по ошибке я нажал ctrl + y, я увидел это ^ Z, я нажал enter, и вход был сделан, EOF отправлен.

Это несколько странно и противоречиво. Некоторое время назад я сменил макет ключей на включение польских символов, но все общие ключи остались неизменными, z по-прежнему отображается на z, когда я обычно использую клавиатуру, обычно ctrl + z ничего не делает на моей клавиатуре, поэтому меня не следует менять, Но, видимо, в cmd он работает по-другому, чтобы иметь ссылку по умолчанию между ctrl и z, мне нужно переключиться на макет по умолчанию или использовать управление y для отправки EOF.

Ответ 4

В окнах просто нажмите CTRL + Z и нажмите enter