EOFError при использовании raw_input в Pycharm

РЕДАКТИРОВАТЬ: Также обратитесь к этому - PyCharm: как отлаживать `raw_input ()` ввод с клавиатуры?

Я пишу код с циклом for и принимаю raw_input

for turn in range(4):
    guess_row[0] = int(raw_input("Player 1 Guess Row:"))
    guess_col[0] = int(raw_input("Player 1 Guess Col:"))
    guess_row[1] = int(raw_input("Player 2 Guess Row:"))
    guess_col[1] = int(raw_input("Player 2 Guess Col:"))

Но я получаю следующую ошибку - Конец файла.

Traceback (most recent call last):
  File "/Users/bonjugal/Desktop/Pycharm/Battleship_Game.py", line 52, in <module>
    guess_row[0] = int(raw_input("Player 1 Guess Row:"))
EOFError

Однако этот код работает нормально, когда я запускаю его с терминала. Я где-то читал, что это может произойти, если вы не закроете файл после чтения/записи. Со мной тоже могло случиться (но в другом проекте). Что мне делать в таком случае? Я также попытался перезапустить IDE (Pycharm).

Кроме того, что на самом деле происходит в фоновом режиме, когда появляется эта ошибка?


person Jugal Anchalia    schedule 02.08.2017    source источник
comment
Если вы посмотрите документацию по EOFError docs.python.org/2/ library/exceptions.html#exceptions.EOFError, вы видите, что это происходит, когда он сталкивается с условием EOF без считывания каких-либо данных. Если он работает в вашем терминале, но не в Pycharm, может возникнуть проблема с форматированием, когда вы вводите пользовательский ввод в Pycharm IDE.   -  person Peter Wang    schedule 02.08.2017
comment
Я вообще не могу вводить пользовательский ввод в Pycharm. Он работал отлично до вчерашнего дня. В нем говорится (N.B.: методы file.read() и file.readline() возвращают пустую строку при достижении EOF.) Сегодня я экспериментировал с методами read() и readline() в отдельный файл. Может ли это быть причиной? Что я могу сделать в этом случае?   -  person Jugal Anchalia    schedule 02.08.2017
comment
Если бы вы экспериментировали с ним в отдельном файле, вероятно, нет. Python автоматически закрывает любой открытый файл, как только программа завершает работу.   -  person Peter Wang    schedule 02.08.2017
comment
Тогда я думаю, что это проблема, связанная с Pycharm, а не что-то еще. Спасибо, Питер. Я пробовал некоторые решения, но пока безуспешно, обновлю, как только это будет исправлено.   -  person Jugal Anchalia    schedule 02.08.2017


Ответы (1)


Нашел ответ. Это была проблема, специфичная для Jetbrains Pycharm. По-видимому, при использовании PyCharm, где конфигурация запуска включает «Показать командную строку после», она работает. Если этот параметр выключен, raw_input блокируется.

Изменить конфигурацию > config > установите флажок показывать командную строку после этого.

Обратитесь к этому.

https://youtrack.jetbrains.com/issue/PY-20551

person Jugal Anchalia    schedule 02.08.2017