Я только начал с Python. Когда я выполняю файл скрипта python в Windows, окно вывода появляется, но мгновенно исчезает. Мне нужно, чтобы остаться там, чтобы я мог проанализировать свои результаты. Как я могу держать это открытым?
Я только начал с Python. Когда я выполняю файл скрипта python в Windows, окно вывода появляется, но мгновенно исчезает. Мне нужно, чтобы остаться там, чтобы я мог проанализировать свои результаты. Как я могу держать это открытым?
Ответы:
У вас есть несколько вариантов:
Запустите программу с уже открытого терминала. Откройте командную строку и введите:
python myscript.py
Чтобы это работало, вам нужен исполняемый файл python на вашем пути. Просто проверьте, как редактировать переменные окружения в Windows, и добавьте C:\PYTHON26
(или любой каталог, в который вы установили python).
Когда программа завершится, она вернет вас к приглашению cmd вместо закрытия окна.
Добавьте код для ожидания в конце вашего скрипта. Для Python2 добавим ...
raw_input()
... в конце скрипта заставляет его ждать Enterключ. Этот метод раздражает, потому что вы должны изменить скрипт и не забыть удалить его, когда закончите. Особенно раздражает при тестировании чужих скриптов. Для Python3 используйте input()
.
Используйте редактор, который делает паузу для вас. Некоторые редакторы, подготовленные для Python, автоматически запустят вас после выполнения. Другие редакторы позволяют вам настроить командную строку, которую он использует для запуска вашей программы. Я считаю особенно полезным настроить его как " python -i myscript.py
" при запуске. Это приводит к тому, что после завершения программы вы попадаете в оболочку Python с загруженной программной средой, поэтому вы можете в дальнейшем играть с переменными и вызывать функции и методы.
cmd /k
это типичный способ открыть любое консольное приложение (не только Python) с консольным окном, которое останется после закрытия приложения. Самый простой способ сделать это - нажать Win + R, набрать, cmd /k
а затем перетащить нужный сценарий в диалоговое окно «Выполнить».
cmd /k
только для Windows. Я не могу помочь с альтернативой Mac, извините.
Запустите скрипт из уже открытого окна cmd или в конце скрипта добавьте что-то вроде этого в Python 2:
raw_input("Press enter to exit ;)")
Или в Python 3:
input("Press enter to exit ;)")
Чтобы ваше окно было открыто в случае исключения (пока при печати исключения)
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
print "Press Enter to continue ..."
raw_input()
Чтобы окно оставалось открытым в любом случае:
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
finally:
print "Press Enter to continue ..."
raw_input()
Для Python3 вам придется использовать input()
вместоraw_input()
и, конечно, адаптировать print
операторы.
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
print("Press Enter to continue ...")
input()
Чтобы окно оставалось открытым в любом случае:
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
finally:
print("Press Enter to continue ...")
input()
Вы можете объединить ответы раньше: (для пользователя Notepad ++)
нажмите F5 для запуска текущего скрипта и введите команду:
cmd /k python -i "$(FULL_CURRENT_PATH)"
Таким образом, вы останетесь в интерактивном режиме после выполнения скрипта Python для Notepad ++ и сможете поиграть со своими переменными и так далее :)
Создайте командный файл Windows с этими 2 строками:
python your-program.py
pause
import os os.system("pause")
в конце .py
файла
raw_input
или другим мусором просто неправильны. Либо введите вашу команду в командной строке так, как ожидает вас Python, либо используйте пакетный язык , предоставляемый MS-DOS именно для этой цели с августа 1981 года .
python %*
и установите его как одну из программ «открыть с помощью», чтобы вы могли либо щелкнуть правой кнопкой мыши по файлу .py, чтобы открыть окно приостановки, либо я также поместил его в папку Anaconda3 (в PATH) как py_pause.bat, так что теперь Я могу бежать py_pause my-prog.py all my args
от линии cmd
В Python 2 вы можете сделать это с помощью: raw_input ()
>>print("Hello World!")
>>raw_input('Waiting a key...')
В Python 3 вы можете сделать это с помощью: input ()
>>print("Hello world!")
>>input('Waiting a key...')
Кроме того, вы можете сделать это с time.sleep (время)
>>import time
>>print("The program will close in 5 seconds")
>>time.sleep(5)
Используя atexit
, вы можете приостановить программу сразу после ее выхода. Если причиной выхода является ошибка / исключение, оно будет приостановлено после печати трассировки стека.
import atexit
# Python 2 should use `raw_input` instead of `input`
atexit.register(input, 'Press Enter to continue...')
В моей программе я помещаю вызов atexit.register
в except
предложение, чтобы оно приостанавливалось, только если что-то пошло не так.
if __name__ == "__main__":
try:
something_that_may_fail()
except:
# Register the pause.
import atexit
atexit.register(input, 'Press Enter to continue...')
raise # Reraise the exception.
У меня была похожая проблема. В Notepad ++ я использовал команду: она C:\Python27\python.exe "$(FULL_CURRENT_PATH)"
закрывала окно cmd сразу после завершения кода.
Теперь я использую cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"
который держит окно cmd открытым.
Чтобы просто держать окно открытым, я согласен с Anurag, и это то, что я сделал, чтобы мои окна были открыты для коротких небольших программ типа расчета.
Это просто показало бы курсор без текста:
raw_input()
Этот следующий пример даст вам четкое сообщение о том, что программа выполнена и не ожидает другого ввода в программе:
print('You have reached the end and the "raw_input()" function is keeping the window open')
raw_input()
Заметка!
(1) В питоне 3 нет raw_input () , только input () .
(2) Используйте одинарные кавычки для обозначения строки; в противном случае, если вы набираете удваивается вокруг чего-либо, например «raw_input ()», он будет думать, что это функция, переменная и т. д., а не текст.
В следующем примере я использую двойные кавычки, и они не будут работать, потому что он думает, что между кавычками и «функцией» есть разрыв, даже когда вы читаете это, ваш собственный разум может в этом разобраться:
print("You have reached the end and the "input()" function is keeping the window open")
input()
Надеюсь, это поможет тем, кто только начинает, и до сих пор не понял, как думает компьютер. Это может занять некоторое время. : О)
Если вы хотите запустить свой скрипт из ярлыка на рабочем столе, щелкните правой кнопкой мыши свой файл Python и выберите Send to|Desktop (create shortcut)
. Затем щелкните правой кнопкой мыши ярлык и выберите Свойства. На вкладке «Ярлык» выберите текстовое поле «Цель»: добавьте cmd /k
перед путем и нажмите «ОК». Теперь ярлык должен запускать ваш скрипт без закрытия, и вам не нужноinput('Hit enter to close')
Обратите внимание, если на вашем компьютере установлено более одной версии python, добавьте имя требуемого исполняемого файла python между cmd / k и путем к scipt следующим образом:
cmd /k python3 "C:\Users\<yourname>\Documents\your_scipt.py"
Помимо input
и raw_input
, вы также можете использовать бесконечный while
цикл, например:
while True: pass
(Python 2.5 + / 3) или while 1: pass
(все версии Python 2/3). Это может использовать вычислительную мощность, хотя.
Вы также можете запустить программу из командной строки. Введите python
в командной строке (Mac OS X Terminal), и он должен сказать Python 3.?.?
(ваша версия Python), он не показывает вашу версию Python, или говорит python: command not found
, посмотрите на изменение значений PATH (значения enviromentl, перечисленные выше) / тип C:\(Python folder\python.exe
. Если это успешно, введите python
или C:\(Python installation)\python.exe
и полный каталог вашей программы.
Очень запоздалый ответ, но я создал пакетный файл Windows с именем, pythonbat.bat
содержащим следующее:
python.exe %1
@echo off
echo.
pause
а затем указывается pythonbat.bat
в качестве обработчика по умолчанию для .py
файлов.
Теперь, когда я дважды щелкаю .py
файл в проводнике, он открывает новое окно консоли, запускает скрипт Python и затем приостанавливает (остается открытым), пока я не нажму любую клавишу ...
Никаких изменений не требуется для любых скриптов Python.
Я все еще могу открыть консольное окно и указать, python myscript.py
хочу ли я ...
(Я только заметил, что @maurizio уже опубликовал этот точный ответ)
Вы можете просто написать
input()
в конце вашего кода
поэтому, когда вы запускаете скрипт, он будет ждать, пока вы что-то введете
{ENTER for example}
Вы можете открыть PowerShell и набрать «python». После импорта Python вы можете скопировать и вставить исходный код из вашего любимого текстового редактора, чтобы запустить код.
Окно не закроется.
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
print "hello world"
python hello.py
Самый простой способ:
import time
#Your code here
time.sleep(60)
#end of code (and console shut down)
это оставит код на 1 минуту, а затем закроет его.
На Windows 10 вставьте в начале этого:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Странно, но у меня это работает! (Вместе с input () в конце, конечно)