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

Пауза в Python

Я запускаю сценарии Python из командной строки из панели задач Windows, имея ярлык, указывающий на интерпретатор Python с фактическим script в качестве параметра.

После обработки script интерпретатор завершается, и окно вывода закрывается, что делает невозможным чтение вывода script.

Каков самый простой способ сохранить окно интерпретатора открытым до нажатия любой клавиши?

В пакетных файлах можно приостановить script с паузой. Самое близкое к этому, что я нашел в python, - это raw_input(), что является неоптимальным, потому что для этого требуется нажать клавишу возврата (вместо любой клавиши).

Любые идеи?

4b9b3361

Ответ 1

Один из способов - оставить raw_input() в конце, чтобы script ожидал, что вы нажмете Enter до его завершения.

Ответ 2

Попробуйте os.system("pause") - я использовал его, и это сработало для меня.

Обязательно включите import os в начало script.

Ответ 3

Нет необходимости ждать ввода перед закрытием, просто измените команду следующим образом:

cmd /K python <script>

Переключатель /K выполнит следующую команду, но оставьте окно интерпретатора команд открытым, в отличие от /C, которое выполняется и затем закрывается.

Ответ 4

Самый лучший вариант: os.system('pause') < - на самом деле будет отображаться сообщение с сообщением "нажмите любую клавишу, чтобы продолжить", тогда как добавление только raw_input('') не будет печатать сообщение, только курсор будет доступен.

не связан с ответом:

os.system("some cmd command") - действительно отличная команда, так как команда может выполнять любые команды командного файла/cmd.

Ответ 5

Один из способов - оставить raw_input() в конце, чтобы script ожидал, что вы нажмете Enter до его завершения.

Преимущество использования raw_input() вместо msvcrt. * материал состоит в том, что первый является частью стандартного Python (т.е. абсолютно кросс-платформенного). Это также означает, что окно script будет живым после двойного щелчка на значке файла script без необходимости делать

cmd /K python <script>

Ответ 6

В Windows вы можете использовать модуль msvcrt.

msvcrt.kbhit()    Возвращаем true, если нажатие клавиши ожидает считывания.

msvcrt.getch()    Прочтите нажатие клавиши и верните полученный символ. Ничего не повторилось на консоль. Этот вызов блокирует если нажатие клавиши еще не доступно, но не будет ждать Enter для нажатия.

Если вы хотите, чтобы он также работал в Unix-подобных системах, вы можете попробовать это решение с помощью termios и fcntl.

Ответ 7

Да, я знаю, что я отправляю в старый поток, но я хотел бы добавить свой голос за используя вход() (3.x и вверх).

Добавлен в конец моего .py script, он действительно предотвращает открытие и закрытие окна консоли.

Что касается "проблемы" того, к какому ключу нажать, чтобы закрыть его, я (и 1000 других, я уверен) просто использую ввод ( "Нажмите Enter, чтобы закрыть" ).

Спасибо, что позволили мне добавить стоимость в 2 цента:)

.

Ответ 8

В окне Windows 10 вставьте это:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Странно, но он работает для меня! (Вместе с input() в конце, конечно)

Ответ 10

import pdb
pdb.debug()

Это используется для отладки script. Также полезно сломать.

Ответ 12

Если вы наберете

input("")

Он будет ждать, пока они нажмут любую кнопку, и она будет продолжена. Также вы можете поместить текст между кавычками.