Я щойно почав з 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 -*-
Дивно, але це працює для мене! (Разом із введенням () наприкінці, звичайно)