Właśnie zacząłem z Python. Kiedy uruchamiam plik skryptu Pythona w systemie Windows, okno wyjściowe pojawia się, ale natychmiast znika. Potrzebuję go, aby tam pozostać, aby móc analizować moje wyniki. Jak mogę zachować to otwarte?
Właśnie zacząłem z Python. Kiedy uruchamiam plik skryptu Pythona w systemie Windows, okno wyjściowe pojawia się, ale natychmiast znika. Potrzebuję go, aby tam pozostać, aby móc analizować moje wyniki. Jak mogę zachować to otwarte?
Odpowiedzi:
Masz kilka opcji:
Uruchom program z już otwartego terminalu. Otwórz wiersz polecenia i wpisz:
python myscript.py
Aby to zadziałało, potrzebujesz na swojej ścieżce pliku wykonywalnego Python. Po prostu sprawdź, jak edytować zmienne środowiskowe w systemie Windows i dodaj C:\PYTHON26
(lub dowolny katalog, w którym zainstalowałeś Pythona).
Kiedy program się skończy, przeniesie Cię z powrotem do monitu cmd zamiast zamykać okno.
Dodaj kod, aby czekać na koniec skryptu. W przypadku Python2 dodawanie ...
raw_input()
... na końcu skryptu każe mu czekać na Enterklucz. Ta metoda jest denerwująca, ponieważ musisz zmodyfikować skrypt i pamiętać o jego usunięciu po zakończeniu. Szczególnie denerwujące podczas testowania skryptów innych osób. W przypadku Python3 użyj input()
.
Użyj edytora, który wstrzymuje się za Ciebie. Niektóre edytory przygotowane dla Pythona automatycznie wstrzymują się po wykonaniu. Inne edytory pozwalają na konfigurację wiersza poleceń, którego używa do uruchamiania programu. Uważam, że szczególnie przydatne jest skonfigurowanie go jako „ python -i myscript.py
” podczas działania. Spowoduje to przeniesienie do powłoki Pythona po zakończeniu programu z załadowanym środowiskiem programu, dzięki czemu możesz dalej bawić się zmiennymi oraz wywoływać funkcje i metody.
cmd /k
jest typowym sposobem otwierania dowolnej aplikacji konsoli (nie tylko Pythona) za pomocą okna konsoli, które pozostanie po zamknięciu aplikacji. Najłatwiej mogę to zrobić, naciskając Win + R, wpisując, cmd /k
a następnie przeciągając i upuszczając skrypt, który chcesz, w oknie dialogowym Uruchom.
cmd /k
jest tylko dla systemu Windows. Przykro mi, nie mogę pomóc z alternatywą dla komputerów Mac.
Uruchom skrypt z już otwartego okna cmd lub na końcu skryptu dodaj coś takiego w Python 2:
raw_input("Press enter to exit ;)")
Lub w Python 3:
input("Press enter to exit ;)")
Aby zachować okno otwarte w przypadku wyjątku (jeszcze podczas drukowania wyjątku)
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()
Aby okno pozostało otwarte w każdym przypadku:
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()
W przypadku Python3 będziesz musiał użyć input()
zamiastraw_input()
i oczywiście dostosować print
instrukcje.
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()
Aby okno pozostało otwarte w każdym przypadku:
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()
możesz połączyć odpowiedzi wcześniej: (dla użytkownika Notepad ++)
naciśnij klawisz F5, aby uruchomić bieżący skrypt i wpisz polecenie:
cmd /k python -i "$(FULL_CURRENT_PATH)"
w ten sposób pozostajesz w trybie interaktywnym po uruchomieniu skryptu pythonowego Notepad ++ i możesz bawić się swoimi zmiennymi i tak dalej :)
Utwórz plik wsadowy systemu Windows za pomocą tych 2 wierszy:
python your-program.py
pause
import os os.system("pause")
na końcu .py
pliku
raw_input
lub inne śmieci są po prostu błędne. Wpisz polecenie w wierszu poleceń w sposób, w jaki oczekuje tego Python, lub użyj języka wsadowego dostarczanego z MS-DOS do tego celu od sierpnia 1981 r .
python %*
i ustaw jako jeden z programów „otwórz za pomocą”, dzięki czemu możesz albo kliknąć plik .py prawym przyciskiem myszy, aby otworzyć okno pauzy, albo umieścić go w folderze Anaconda3 (w ścieżce) jako py_pause.bat, więc teraz Mogę biegać py_pause my-prog.py all my args
z linii cmd
W Pythonie 2 możesz to zrobić za pomocą: raw_input ()
>>print("Hello World!")
>>raw_input('Waiting a key...')
W Pythonie 3 możesz to zrobić za pomocą: input ()
>>print("Hello world!")
>>input('Waiting a key...')
Możesz to również zrobić za pomocą time.sleep (time)
>>import time
>>print("The program will close in 5 seconds")
>>time.sleep(5)
Używając atexit
, możesz zatrzymać program zaraz po jego wyjściu. Jeśli błąd / wyjątek jest przyczyną wyjścia, zatrzyma się po wydrukowaniu śledzenia stosu.
import atexit
# Python 2 should use `raw_input` instead of `input`
atexit.register(input, 'Press Enter to continue...')
W moim programie, kładę wywołanie atexit.register
w except
klauzuli, tak, że będzie wstrzymać tylko wtedy, gdy coś poszło nie tak.
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.
Miałem podobny problem. W Notepad ++ korzystałem z polecenia: C:\Python27\python.exe "$(FULL_CURRENT_PATH)"
które zamykało okno cmd natychmiast po zakończeniu kodu.
Teraz używam, cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"
który utrzymuje otwarte okno cmd.
Aby po prostu pozostawić otwarte okno, zgadzam się z Anurag i to właśnie zrobiłem, aby moje okna były otwarte dla krótkich, małych programów typu obliczeniowego.
To po prostu pokazuje kursor bez tekstu:
raw_input()
Poniższy przykład dałby jasny komunikat, że program jest zakończony i nie czekał na kolejne pytanie wejściowe w programie:
print('You have reached the end and the "raw_input()" function is keeping the window open')
raw_input()
Uwaga!
(1) W Pythonie 3 nie ma raw_input () , tylko input () .
(2) Użyj pojedynczych cudzysłowów, aby wskazać ciąg; w przeciwnym razie, jeśli wpiszesz dublowanie wokół czegoś, na przykład „raw_input ()”, pomyślisz, że jest to funkcja, zmienna itp., a nie tekst.
W następnym przykładzie używam podwójnych cudzysłowów i to nie zadziała, ponieważ wydaje się, że istnieje przerwa w cudzysłowach między „funkcją” a „funkcją”, nawet jeśli ją czytasz, twój własny umysł może to doskonale zrozumieć:
print("You have reached the end and the "input()" function is keeping the window open")
input()
Mam nadzieję, że pomoże to innym osobom, które zaczynają i nadal nie wiedzą, jak myśli komputer. To może chwilę potrwać. : o)
Jeśli chcesz uruchomić skrypt ze skrótu na pulpicie, kliknij prawym przyciskiem myszy plik Pythona i wybierz Send to|Desktop (create shortcut)
. Następnie kliknij prawym przyciskiem myszy skrót i wybierz Właściwości. Na karcie Skrót wybierz pole tekstowe Cel: dodaj cmd /k
przed ścieżką i kliknij OK. Skrót powinien teraz uruchamiać skrypt bez zamykania i nie potrzebujesz goinput('Hit enter to close')
Uwaga: jeśli masz więcej niż jedną wersję Pythona na swoim komputerze, dodaj nazwę wymaganego pliku wykonywalnego Pythona między cmd / k a ścieżką scipt w następujący sposób:
cmd /k python3 "C:\Users\<yourname>\Documents\your_scipt.py"
Oprócz input
i raw_input
możesz także użyć nieskończonej while
pętli, takiej jak:
while True: pass
(Python 2.5 + / 3) lubwhile 1: pass
(wszystkie wersje Python 2/3). Może to jednak wymagać mocy obliczeniowej.
Możesz także uruchomić program z wiersza poleceń. Wpisz python
w wierszu poleceń (Mac OS X Terminal) i powinien powiedziećPython 3.?.?
(Twoja wersja w języku Python) Nie pokazuje twojej wersji w języku Python lub mówi python: command not found
: spójrz na zmianę wartości PATH (wartości środowiskowe, wymienione powyżej) / type C:\(Python folder\python.exe
. Jeśli to się powiedzie, typ python
lub C:\(Python installation)\python.exe
oraz pełny katalog twojego programu.
Bardzo spóźniona odpowiedź, ale utworzyłem plik wsadowy Windows o nazwie pythonbat.bat
zawierający:
python.exe %1
@echo off
echo.
pause
a następnie określone pythonbat.bat
jako domyślny moduł obsługi dla.py
plików.
Teraz, kiedy kliknę dwukrotnie a .py
plik w Eksploratorze plików, otwiera nowe okno konsoli, uruchamia skrypt Python, a następnie zatrzymuje się (pozostaje otwarty), dopóki nie naciśnie żadnego klawisza ...
Żadne zmiany nie są wymagane w żadnych skryptach Python.
Nadal mogę otworzyć okno konsoli i określić python myscript.py
czy chcę ...
(Właśnie zauważyłem, że @ Maurizio opublikował już tę dokładną odpowiedź)
Możesz po prostu pisać
input()
na końcu kodu
dlatego po uruchomieniu skryptu będzie on czekał na wprowadzenie danych
{ENTER for example}
Możesz otworzyć PowerShell i wpisać „python”. Po zaimportowaniu Pythona możesz skopiować kod źródłowy z ulubionego edytora tekstu, aby go uruchomić.
Okno się nie zamknie.
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
print "hello world"
python hello.py
Najprostszy sposób:
import time
#Your code here
time.sleep(60)
#end of code (and console shut down)
spowoduje to pozostawienie kodu na 1 minutę, a następnie zamknięcie.
W Windows 10 wstaw na początku:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Dziwne, ale dla mnie działa! (Oczywiście wraz z input () na końcu)