2017-01-07 2 views
12

На предыдущих компьютерах, когда я пытался выйти из питона скрипт в командной строке Windows, все, что вам нужно сделать, это нажать Ctrl +с. Но когда я делаю, что на моем компьютере, он говорит мне «KeyboardInterrupt»как выйти из питона скрипт в командной строке

C:\Windows\System32 
>python 
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> [I press ctrl+c] 
KeyboardInterrupt 
>>> 

Так как же я могу это исправить, так что я могу выйти из сценария Python?

Edit:
Ctrl + г работает, но мне нужно, чтобы ввести его в качестве кода. Был надеяться на быстрый и простой способ просто выйти из сценария, но хорошо.

+1

ctrl + c останавливает любой текущий процесс. Используйте 'quit()' для выхода из консоли. – 3novak

+0

нажмите + d для выхода – elyashiv

+1

Попробуйте ввести вместо этого «exit()». – Inconnu

ответ

16

Это действительно зависит от ОС и, вероятно, от версии Python, которую вы используете.

Как уже упоминалось, Ctrl + C не работает на вашем Windows 10 с Python 3.6, но она работает на моем Windows 10 с Python 3.4. Поэтому вам действительно нужно попробовать и посмотреть, что сработает для вас.

Попробуйте следующие команды, и сохранить тот, который работает:

  • Ctrl + C
  • Ctrl + D
  • Ctrl + Z затем Возврат

Кроме того, должно работать с любым терминалом:

  • exit() затем Return
  • quit() затем Return

Пустяки: если вы наберете quit и hit , консоль говорит вам, по крайней мере для Python 3.4:

Use quit() or Ctrl-Z plus Return to exit

+1

Ctrl + C только «работает» (это ошибка) в Windows 8+ до Python 3.6, так как реализация Windows ['ReadFile'] (https://msdn.microsoft.com/en-us/library/aa365467) сломалась его контракт API для установки последней ошибки на «ERROR_OPERATION_ABORTED», когда чтение с консоли прерывается Ctrl + C. Без этого REPL Python считает, что чтение успешно вернуло 0 байт, то есть конец файла и выходы. 3.6 переключился на вызов 'ReadConsoleW', чтобы лучше поддерживать Unicode, и эта функция устанавливает правильную ошибку для чтения, прерванного Ctrl + C. – eryksun

+1

'ReadFile' возвращает EOF, если буфер, считываемый с консоли, начинается с Ctrl + Z, но это готовое чтение, поэтому вам нужно нажать enter, чтобы завершить чтение. ['ReadConsole'] (https://msdn.microsoft.com/en-us/library/ms684958) не реализует этот хак, поэтому REPL 3.6 в Python реализует это самостоятельно. Но поскольку он использует 'ReadConsole', я думаю, что он также должен использовать параметр' pInputControl' для поддержки немедленного Ctrl + D, аналогичного терминалу Unix. – eryksun

+1

'exit' и' quit' предоставляются модулем 'site'. Они недоступны, если вы запустите Python с опцией '-S', которая запрещает импорт' site'. Это удобство для REPL. Вместо этого сценарий должен полагаться на 'sys.exit ([exit_code])' или 'raise SystemExit ([exit_code])'. – eryksun

0

Вы можете просто набрать "бросить курить()" и его сделали!
CTRL + C прервет запуск сценария; но вы просто хотите выйти из интерпретатора. Таким образом, функция quit() будет работать для вас.

Смежные вопросы