Как остановить закрытие Python сразу после выполнения в Microsoft Windows
Я только что начал колледж, и мы будем использовать python. Мы действительно ничего не сделали, поэтому я загрузил программу и выполнил некоторые команды печати, и что она.
Когда я запускаю свой .py файл (команда print ), он сразу же закрывается после появления. Я понимаю, почему он это делает – он дал результат, поэтому он сделал то, что ему нужно сделать, но я также понимаю, что вы можете остановить это.
Я просмотрел этот веб-сайт, и ни одно из решений, предоставленных этому вопросу, не работало, либо я их не понимал.
Есть ли простая команда, которую я могу внести в редактор IDLE, который заставит программу приостановиться или что-то еще? Я пробовал input(«prompt: «) , как предложил кто-то, и это не имело никакого значения.
Если для этого нет команды, есть ли способ изменить настройки на компьютере, чтобы программы не закрывались автоматически?
В Python 3 добавьте следующее в конец вашего кода:
Это заставит программу ждать ввода пользователя, нажав ENTER, заставляя программу закончить.
Вы можете дважды щелкнуть по файлу script.py в Windows таким образом.
Откройте командную строку cmd и запустите команды Python.
(в Windows идут запускать или искать и набирать cmd)
Он должен выглядеть следующим образом:
Это приведет к выполнению вашего кода в cmd, и он останется открытым.
Однако, чтобы использовать команду python, Python должен быть правильно установлен, поэтому cmd распознает его как команду. Проверьте правильность установки и регистрации переменных для вашей ОС, если этого не произойдет
Единственное, что сработало для меня – аргумент командной строки.
Просто поместите весь свой код python внутри .py файла, а затем запустите следующую команду:
Это означает, что если вы установите переменную -i и запустите свой модуль, тогда python не выйдет из SystemExit.
Подробнее читайте в этой ссылке.
Запустите команду, используя командную строку Windows из основного источника библиотеки Python.
Пример.
Если вам просто нужна задержка
В Python 2.7 добавление этого в конец моего файла py ( if __name__ == ‘__main__’: ) работает:
В зависимости от того, для чего я его использую, или если я делаю то, что другие будут использовать, я обычно просто input(«Do eighteen backflips to continue») , если он только для меня, если другие будут использовать, я просто создаю пакетный файл и приостанавливаю после
Я использую вышеуказанное, если будут файлы, переименованные, перемещенные, скопированные и т.д., и мой cmd должен находиться в конкретной папке, чтобы вещи падали там, где я их хочу, иначе – просто
Я думаю, что я слишком поздно, чтобы ответить на этот вопрос, но в любом случае ничего не происходит.
Я уже сталкивался с той же проблемой, и я думаю, что есть два альтернативных решения, которые вы можете выбрать.
- с помощью sleep (_someime)
from time import *
sleep(10)
- с помощью приглашения (обратите внимание, что я использую python 2.7)
exit_now = raw_input(«Do you like to exit now (Y)es (N)o ? «)’
if exit_now.lower() = ‘n’
//more processing here
В качестве альтернативы вы можете использовать гибрид этих двух методов, где вы можете запросить сообщение и использовать сон (когда-то), чтобы задержать закрытие окна. выбор за вами.
обратите внимание, что приведенные выше являются просто идеями, и если вы хотите использовать любой из них на практике, вам может потребоваться немного подумать о вашей логике приложения.
Ну, у меня такая же проблема,
Он решается добавлением переменной среды.
Все python-exe файлы сразу закрываются после запуска
EXE файл завершает работу сразу после запуска
Привет всем, столкнулся с следующей проблемой Написал небольшую програмку на паскале. Чтобы.
Программы закрываются сразу после открытия
В заголовке изложена вся суть проблемы. Надеюсь на вашу помощь:)
Программы закрываются сразу после открытия
Собственно вся проблема написана в заголовке. Как решить данную проблему?
Программы закрываются сразу после открытия
собственно всем доброй ночи. в компьютерах я неофит (образование гуманитарное). проблема.
В windows именно так и происходит. При соответствующих настройках, которые устанавливаются по умолчанию, когда вы устанавливаете Python, и вы их потом не изменяете, достаточно нажать двойным щелчком мыши на иконке файла *.py и windows автоматически запустит Python и питон запустит ваш код. В windows это работает для любых файлов, которые должны запускаться под управлением соответствующих программ. Когда вы нажимаете иконку картинки *.gif, windows автоматически запускает графический редактор, к которому привязано расширение .gif и графический редактор открывает графический файл.
С питоном и питоновскими файлами *.py все работает точно так же.
Я давно файлы так не запускал, потому что работаю только через отладчик. Но на всякий случай сейчас еще раз проверил. И все работает именно так как я здесь написал.
Добавлено через 1 минуту
И именно при таком запуске файла, окно схлопывается если не поставить в конце кода input()
Тоже сейчас на всякий случай только что проверил.
Завершение программы в Python
Как сделать раннее завершение программы в Python? В самоучителе я нашёл несколько примеров:
Однако там не было объяснения какой метод лучше. Какой метод является наиболее «безаварийным»?
И заодно: есть ли в Python понятие Autocloseable объектов? Если я сделаю ранее завершение программы, нужно ли мне будет закрывать файлы и т.д.?
2 ответа 2
Короткий ответ:
Лучше использовать sys.exit()
Механизм завершения процесса в Python реализован через бросание исключения SystemExit , таким образом можно просто создать подобное исключение и программа завершится:
Функция exit и аналогичная ей quit созданы для удобства работы в интерактивном режиме и их не рекомендуется использовать внутри скриптов:
They are useful for the interactive interpreter shell and should not be used in programs.
По факту они также просто поднимают исключение, и при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора:
Использовать sys.exit стоит потому, что эта функция лежит в стандартном модуле и будет всегда там доступна. Также это довольно явный способ выразить своё желание завершить программу.
Есть также дополнительный метод для немедленного завершения программы: os._exit . У него довольно специфическая область применения, и там же есть замечание:
The standard way to exit is sys.exit(n)
Т.е. здесь даётся подтверждение того, что стандартный способ завершения программы — это вызов sys.exit .
Функция os.abort , упомянутая вами, использует механизм сигналов процессу. Конкретно при вызове этой функции будет передан сигнал SIGABRT , что в linux приведёт к завершению программы и созданию дампа памяти процесса. Подобное завершение рассматривается операционной системой как аварийное, поэтому не стоит использовать его для безаварийного завершения приложения.
По второй части вопроса. В Python есть развитая система контекстных менеджеров: классов, которые умеют работать с оператором with . Самое частое использование этого механизма встречается, вероятно, с файлами.
Этот код откроет файл, напечатает его содержимое на экран и закроет файл автоматически, даже если возникнет исключение при его печати.
Для классов, которые не приспособлены для работы с with есть функция closing в библиотеке contextlib . Из документации:
is equivalent to this:
Вот небольшой пример работы этой функции:
Теперь небольшое отступление о том, почему стоит использовать конструкцию with .
Известно, что программа завершится от любого необработанного исключения, а не только от SystemExit . Таким образом, если в вашем коде используются какие-то ресурсы, которые требуется правильным образом закрывать перед завершением работы, нужно оборачивать работу с ними в блоки try . finally . .
Однако, при использовании конструкции with это оборачивание происходит автоматически, и все ресурсы закрываются корректно.
Так как выход из программы — это всего лишь брошенное исключение, то и в случае использования функции sys.exit закрытие открытых в операторе with ресурсов произойдёт корректно:
Вы можете писать также и свои классы, предоставляющие ресурсы или классы, оборачивающие другие, которые нужно уметь закрывать автоматически. Для этого используются методы __enter__ и __exit__ .
Как остановить немедленное закрытие Python при выполнении в Microsoft Windows
Я только что поступил в колледж, и мы будем использовать python. Мы действительно ничего не сделали, поэтому я скачал программу и сделал несколько команд печати, и все.
Когда я запускаю свой файл .py (команда print ), он сразу же закрывается после появления. Я понимаю, почему он это делает — он получил результат, поэтому он сделал то, что ему нужно, — но я также понимаю, что вы можете остановить это.
Я просмотрел этот сайт, и ни одно из решений, данных на этот вопрос, не сработало, либо это, либо я их не понял.
Есть ли простая команда, которую я могу ввести в свой редактор IDLE, которая поставит программу на удержание или что-то в этом роде? Я попробовал input(«prompt: «) , как предложил кто-то, и это не имело никакого значения.
Если для этого нет команды, есть ли способ изменить настройки на компьютере, чтобы программы не закрывались автоматически?
14 ответов
В последнее время я пытаюсь выучить C++ с этого сайта . К сожалению, всякий раз, когда я пытаюсь запустить один из примеров кода, я вижу, что эта программа открывается примерно на полсекунды, а затем сразу же закрывается. Есть ли способ остановить немедленное закрытие программы, чтобы я мог.
Я попытался запустить скрипт python, но он сразу же закрывается, когда обнаруживает ошибку. Есть ли способ остановить закрытие окна консоли после ошибки без использования batch file и без ввода этой команды: C:\WINDOWS\system32\cmd.exe /K Кстати, добавление try и except по-прежнему.
В Python 3, добавьте следующую строку в конец вашего кода:
Это приведет к тому, что программа будет ждать ввода данных пользователем, а нажатие кнопки ENTER приведет к завершению работы программы.
Таким образом, вы можете дважды щелкнуть по своему файлу script.py в Windows.
Единственное, что сработало для меня-это аргумент командной строки.
Просто поместите весь свой код python в файл .py, а затем выполните следующую команду;
Это означает, что если вы установите переменную-i и запустите свой модуль, то python не выйдет на SystemExit. Подробнее читайте по этой ссылке .
Откройте cmd (командная строка) и запустите оттуда Python команд. (на Windows перейдите к run или search и введите cmd) Это должно выглядеть так:
Это приведет к выполнению вашего кода в cmd, и он будет оставлен открытым. Однако, чтобы использовать команду python, Python должен быть правильно установлен, чтобы cmd распознал его как команду. Проверьте правильную установку и регистрацию переменной для вашего OS, если этого не произойдет
У меня есть две кнопки redio (rb1 и rb) и текстовое поле в custom messagebox, и я хочу остановить закрытие custom messagebox, если какой-либо параметр Не выбран. box.Dismissed += (s, e1) => < if (e1.Result == CustomMessageBoxResult.LeftButton) < if(rb.IsChecked.Value) < >else.
Как остановить автоматическое закрытие консольных приложений C#?
Выполните команду с помощью командной строки windows из основного источника библиотеки Python. Пример.
в конце концов, чтобы это прекратилось.
Если вы просто хотите отсрочки
В зависимости от того, для чего я его использую, или если я делаю что-то, что будут использовать другие, я обычно просто input(«Do eighteen backflips to continue») , если это только для меня, если другие будут использовать, я просто создаю batch file и приостанавливаю его после
Я использую вышеизложенное, если будут переименованы, перемещены, скопированы файлы и т. д., И мой cmd должен быть в определенной папке, чтобы вещи упали туда, куда я хочу, иначе-просто
В Python 2.7 добавив в конец моего файла ру ( if __name__ == ‘__main__’: ) производство общестроительных:
Ну у меня есть похожая проблема, Она решается путем добавления переменной окружения.
Добавление системных переменных в окно
Ваш путь Python.
Я думаю, что уже слишком поздно отвечать на этот вопрос, но в любом случае здесь ничего не происходит.
Я уже сталкивался с той же проблемой раньше, и я думаю, что есть два альтернативных решения, из которых вы можете выбрать.
from time import * sleep(10)
- используя подсказку (обратите внимание, что я использую python 2.7)
exit_now = raw_input(«Do you like to exit now (Y)es (N)o ? «)’
if exit_now.lower() = ‘n’
//more processing here
В качестве альтернативы вы также можете использовать гибрид этих двух методов, где вы можете запрашивать сообщение и использовать sleep(иногда) для задержки закрытия окна. выбор за вами.
пожалуйста, обратите внимание, что вышеизложенное-это всего лишь идеи, и если вы хотите использовать любую из них на практике, вам, возможно, придется немного подумать о логике вашего приложения.
Причина, по которой он закрывается, заключается в том, что программа больше не работает, просто добавьте какой-либо цикл или ввод, чтобы исправить это (или вы можете просто запустить его в режиме ожидания.)
Поздно здесь, но на случай, если кто-то придет сюда из google—
Перейдите в папку с вашим файлом .py. Нажмите SHIFT, затем щелкните правой кнопкой мыши в любом месте и выберите Открыть командную строку отсюда. Как только он поднимется, просто добавьте
«python NameOfTheProg.py» до линии cmd
Я не мог найти нигде в интернете истинного, не специфичного для скрипта, двойного щелчка, и окно не закрывается. Наверное, я слишком ленив, чтобы перетаскивать или печатать, когда мне это не нужно, поэтому после некоторых экспериментов я придумал решение.
Основная идея состоит в том, чтобы повторно связать файлы .py, чтобы они запускали отдельный начальный сценарий перед запуском предполагаемого сценария. Начальный сценарий запускает новое окно командной строки с параметром /k, который сохраняет командную строку открытой после завершения и запускает ваш предполагаемый сценарий в новом окне.
Может быть, есть веские причины не делать этого, те, у кого больше знаний, пожалуйста, прокомментируйте, если это так, но я думаю, что если я столкнусь с ними, то легко вернуться назад, если это необходимо. Один из возможных нежелательных побочных эффектов-перетаскивание или ввод текста и запуск из командной строки теперь открывает вторую командную строку, а не запуск в командной строке, которую вы перетащили или ввели.
Теперь для реализации я называю начальный сценарий python python_cmd_k.pyw. Я использую Python 3.7. Требуемый код может отличаться для других версий. Измените путь C:\Python37\python.exe на местоположение вашей установки python. Свяжите .pyw файлов с pythonw.exe (а не с python.exe) через Windows, если они еще не созданы.
Это выполняется каждый раз, когда вы дважды щелкаете любой сценарий .py и запускаете новую командную строку для запуска сценария, который вы дважды щелкнули. Запуск через pythonw.exe подавляет окно командной строки при запуске этого начального сценария. В противном случае, если вы запустите его через python.exe, в результате кратковременного отображения первого окна появится раздражающее мигание командной строки. Предполагаемый сценарий отображается, потому что код в исходном сценарии выше запускает предполагаемый сценарий с python.exe.
Теперь свяжите .py файлов с python.exe (а не с pythonw.exe) по Windows, если они еще не созданы, и отредактируйте запись реестра для этой ассоциации (отказ от ответственности: всегда создавайте резервную копию реестра перед его редактированием, если вы не уверены в том, что делаете). Я не знаю, есть ли разные пути в реестре для ассоциации файлов для разных версий Windows, но для меня это так:
Измените данные на путь pythonw.exe (а не python.exe) и добавьте путь к скрипту ptyhon выше и «%1» в качестве аргументов («%1» передает полный путь дважды щелкнутого файла). Например, если pythonw.exe и python_cmd_k.pyw находятся в C:\Python37\, то:
Нет необходимости помещать python_cmd_k.pyw в тот же каталог, что и pythonw.exe, если вы указываете правильный путь для обоих. Вы можете поместить их в файлы .reg для легкого переключения между использованием скрипта и поведением по умолчанию. Измените пути по мере необходимости в приведенных ниже примерах (расположение в реестре, ваша установка python, место, где вы разместили свой сценарий python_cmd_k.pyw).
С помощью ptyhon_cmd_k.pyw (измените пути по мере необходимости):
Версия по умолчанию (измените пути по мере необходимости):
- Откройте командную строку от имени администратора.
- Тип python.exe (при условии, что вы указали путь к нему в переменных среды)
Затем в том же окне командной строки интерпретатор python будет начинаться с >>>
Это сработало для меня.
Похожие вопросы:
Я скачал установщик postgresql-9.0.1-1-windows.exe с официального сайта, запустил его, а потом получил ошибку: Произошла ошибка при выполнении установщика Microsoft VC++ runtime installer В чем.
В python при запуске скриптов есть ли способ остановить закрытие окна консоли после выплевывания трассировки?
У меня есть настольное приложение Java, и я хотел бы, когда пользователь выбирает Exit, получить всплывающее окно, которое спрашивает его, хочет ли он продолжить закрытие приложения или нет. Я знаю.
В последнее время я пытаюсь выучить C++ с этого сайта . К сожалению, всякий раз, когда я пытаюсь запустить один из примеров кода, я вижу, что эта программа открывается примерно на полсекунды, а.
Я попытался запустить скрипт python, но он сразу же закрывается, когда обнаруживает ошибку. Есть ли способ остановить закрытие окна консоли после ошибки без использования batch file и без ввода этой.
У меня есть две кнопки redio (rb1 и rb) и текстовое поле в custom messagebox, и я хочу остановить закрытие custom messagebox, если какой-либо параметр Не выбран. box.Dismissed += (s, e1) => < if.
Как остановить автоматическое закрытие консольных приложений C#?
Я хочу использовать пакет python pyrouge в Microsoft Windows. Пакет не дает никаких инструкций о том, как установить его на Microsoft Windows. Как я могу это сделать?
В Visual Studio Code, когда я запускаю интерактивное окно Python (например, вызывая команду Run Selection/Line in Python Interactive Window), сервер Jupyter запускается в фоновом режиме. В этом окне.