Я щойно почав з Python. Коли я виконую файл сценарію python у Windows, вікно виводу з'являється, але миттєво відходить. Мені це потрібно, щоб я залишився там, щоб я міг проаналізувати свої результати. Як я можу тримати його відкритим?
Я щойно почав з Python. Коли я виконую файл сценарію python у Windows, вікно виводу з'являється, але миттєво відходить. Мені це потрібно, щоб я залишився там, щоб я міг проаналізувати свої результати. Як я можу тримати його відкритим?
Відповіді:
У вас є кілька варіантів:
Запустіть програму з уже відкритого терміналу. Відкрийте командний рядок і введіть:
python myscript.py
Для цього вам потрібен виконуваний пітон на вашому шляху. Просто перевірте, як редагувати змінні середовища в 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 за допомогою цих двох рядків:
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 (time)
>>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) У python 3 немає raw_input () , просто введення () .
(2) Використовуйте одинарні лапки для позначення рядка; в іншому випадку, якщо ви введете подвійні навколо чого-небудь, наприклад, "raw_input ()", він подумає, що це функція, змінна тощо, а не текст.
У цьому наступному прикладі я використовую подвійні лапки, і це не спрацює, оскільки він вважає, що між цитатами "" і "функція" є розрив, навіть коли ви читаєте їх, ваш власний розум може це зрозуміти:
print("You have reached the end and the "input()" function is keeping the window open")
input()
Сподіваємось, це допомагає іншим, хто, можливо, починає і досі не зрозумів, як думає комп'ютер. Це може зайняти деякий час. : o)
Якщо ви хочете запустити свій скрипт із ярлика робочого столу, клацніть правою кнопкою миші файл python та виберіть Send to|Desktop (create shortcut)
. Потім клацніть правою кнопкою миші ярлик і виберіть Властивості. На вкладці Ярлик виберіть текстове поле Ціль: і додайте cmd /k
перед контуром та натисніть кнопку ОК. Ярлик тепер повинен запускати ваш сценарій без закриття, і він вам не потрібенinput('Hit enter to close')
Зауважте, якщо у вас на машині є більше однієї версії python, додайте ім'я потрібного виконуваного python між cmd / k та шип-шлях таким чином:
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, перелічені вище) / type C:\(Python folder\python.exe
. Якщо це успішно, введіть python
або C:\(Python installation)\python.exe
і повний каталог вашої програми.
Дуже запізнілий відповідь, але я створив файл Batch Windows, який називається pythonbat.bat
:
python.exe %1
@echo off
echo.
pause
а потім вказано pythonbat.bat
як обробник .py
файлів за замовчуванням .
Тепер, коли я двічі клацніть .py
файл у File Explorer, він відкриває нове вікно консолі, запускає скрипт 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 -*-
Дивно, але це працює для мене! (Разом із введенням () наприкінці, звичайно)