Ich habe gerade mit Python angefangen. Wenn ich eine Python-Skriptdatei unter Windows ausführe, wird das Ausgabefenster angezeigt, aber sofort ausgeblendet. Ich brauche es, um dort zu bleiben, damit ich meine Ausgabe analysieren kann. Wie kann ich es offen halten?
191
Antworten:
Sie haben einige Möglichkeiten:
Führen Sie das Programm von einem bereits geöffneten Terminal aus. Öffnen Sie eine Eingabeaufforderung und geben Sie Folgendes ein:
Damit dies funktioniert, benötigen Sie die ausführbare Python-Datei in Ihrem Pfad. Überprüfen Sie einfach, wie Sie Umgebungsvariablen unter Windows bearbeiten und hinzufügen
C:\PYTHON26
(oder in welches Verzeichnis Sie Python installiert haben).Wenn das Programm beendet ist, kehren Sie zur Eingabeaufforderung cmd zurück, anstatt das Fenster zu schließen.
Fügen Sie Code hinzu, um am Ende Ihres Skripts zu warten. Fügen Sie für Python2 ...
... am Ende des Skripts wartet es auf den EnterSchlüssel. Diese Methode ist ärgerlich, da Sie das Skript ändern und daran denken müssen, es zu entfernen, wenn Sie fertig sind. Besonders ärgerlich beim Testen der Skripte anderer Leute. Verwenden Sie für Python3
input()
.Verwenden Sie einen Editor, der für Sie pausiert. Einige für Python vorbereitete Editoren werden nach der Ausführung automatisch für Sie angehalten. Mit anderen Editoren können Sie die Befehlszeile konfigurieren, mit der Ihr Programm ausgeführt wird. Ich finde es besonders nützlich, es
python -i myscript.py
beim Ausführen als " " zu konfigurieren . Dadurch gelangen Sie nach dem Ende des Programms zu einer Python-Shell, in der die Programmumgebung geladen ist, sodass Sie weiter mit den Variablen spielen und Funktionen und Methoden aufrufen können.quelle
cmd /k
ist die typische Methode zum Öffnen einer Konsolenanwendung (nicht nur Python) mit einem Konsolenfenster, das nach dem Schließen der Anwendung erhalten bleibt. Der einfachste Weg, dies zu tun, besteht darin, Win + R zu drücken,cmd /k
das gewünschte Skript einzugeben und per Drag & Drop in das Dialogfeld "Ausführen" zu ziehen.quelle
cmd /k
ist nur Windows. Ich kann mit einer Mac-Alternative nicht helfen, sorry.Starten Sie das Skript aus dem bereits geöffneten cmd-Fenster oder fügen Sie am Ende des Skripts in Python 2 Folgendes hinzu:
Oder in Python 3:
quelle
Um Ihr Fenster im Ausnahmefall offen zu halten (noch beim Drucken der Ausnahme)
Python 2
So lassen Sie das Fenster auf jeden Fall offen:
Python 3
Für Python3 werden Sie müssen verwenden
input()
anstelle vonraw_input()
und natürlich passen dieprint
Aussagen.So lassen Sie das Fenster auf jeden Fall offen:
quelle
Sie können die Antworten vorher kombinieren: (für Notepad ++ Benutzer)
Drücken Sie F5, um das aktuelle Skript auszuführen, und geben Sie den folgenden Befehl ein:
Auf diese Weise bleiben Sie nach dem Ausführen Ihres Notepad ++ - Python-Skripts im interaktiven Modus und können mit Ihren Variablen usw. herumspielen :)
quelle
Erstellen Sie eine Windows-Batchdatei mit den folgenden 2 Zeilen:
quelle
import os os.system("pause")
am Ende der.py
Dateiraw_input
oder anderer Müll beschädigt werden muss, sind einfach falsch. Geben Sie Ihren Befehl entweder so in die Befehlszeile ein, wie Python es von Ihnen erwartet, oder verwenden Sie die Batch-Sprache , die seit August 1981 genau zu diesem Zweck mit MS-DOS bereitgestellt wird .python %*
es noch besser und legen Sie es als eines der "Öffnen mit" -Programme fest, sodass Sie entweder mit der rechten Maustaste auf eine .py-Datei klicken können, um ein Pausenfenster zu öffnen, oder ich lege es jetzt auch in meinen Anaconda3-Ordner (in PATH) als py_pause.bat Ich kannpy_pause my-prog.py all my args
von der cmd Linie laufenIn Python 2 können Sie dies tun mit: raw_input ()
In Python 3 können Sie dies tun mit: input ()
Sie können dies auch mit time.sleep (time) tun.
quelle
Mit
atexit
können Sie das Programm direkt beim Beenden anhalten. Wenn ein Fehler / eine Ausnahme der Grund für das Beenden ist, wird es nach dem Drucken des Stacktraces angehalten.In meinem Programm habe ich den Aufruf
atexit.register
in dieexcept
Klausel eingefügt, sodass er nur angehalten wird, wenn etwas schief gelaufen ist.quelle
Ich hatte ein ähnliches Problem. Mit Notepad ++ habe ich den Befehl verwendet:
C:\Python27\python.exe "$(FULL_CURRENT_PATH)"
der das cmd-Fenster unmittelbar nach dem Beenden des Codes schloss.Jetzt benutze ich,
cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"
was das cmd-Fenster offen hält.quelle
Auf Python 3
Wird den Trick machen.
quelle
Um nur das Fenster offen zu halten, stimme ich Anurag zu und dies habe ich getan, um meine Fenster für kurze kleine Berechnungsprogramme offen zu halten.
Dies würde nur einen Cursor ohne Text anzeigen:
Dieses nächste Beispiel würde Ihnen eine klare Nachricht geben, dass das Programm fertig ist und nicht auf eine andere Eingabeaufforderung innerhalb des Programms wartet:
In diesem nächsten Beispiel verwende ich doppelte Anführungszeichen und es funktioniert nicht , weil es denkt, dass die Anführungszeichen zwischen "the" und "function" unterbrochen sind, obwohl Ihr eigener Verstand beim Lesen einen vollkommenen Sinn daraus ziehen kann:
Hoffentlich hilft dies anderen, die vielleicht anfangen und noch nicht herausgefunden haben, wie der Computer denkt. Es kann eine Weile dauern. :Ö)
quelle
Wenn Sie Ihr Skript über eine Desktopverknüpfung ausführen möchten, klicken Sie mit der rechten Maustaste auf Ihre Python-Datei und wählen Sie
Send to|Desktop (create shortcut)
. Klicken Sie dann mit der rechten Maustaste auf die Verknüpfung und wählen Sie Eigenschaften. Wählen Sie auf der Registerkarte Verknüpfung das Textfeld Ziel: aus, fügen Sie escmd /k
vor dem Pfad hinzu und klicken Sie auf OK. Die Verknüpfung sollte jetzt Ihr Skript ausführen, ohne es zu schließen, und Sie benötigen das nichtinput('Hit enter to close')
Hinweis: Wenn Sie mehr als eine Python-Version auf Ihrem Computer haben, fügen Sie den Namen der erforderlichen ausführbaren Python-Datei zwischen cmd / k und dem Scipt-Pfad wie folgt hinzu:
quelle
Abgesehen von
input
undraw_input
können Sie auch einewhile
Endlosschleife wie die folgende verwenden:while True: pass
(Python 2.5 + / 3) oderwhile 1: pass
(alle Versionen von Python 2/3). Dies könnte jedoch Rechenleistung verbrauchen.Sie können das Programm auch über die Befehlszeile ausführen. Geben Sie
python
in die Befehlszeile (Mac OS X Terminal) ein und es solltePython 3.?.?
(Ihre Python-Version) angezeigt werden. Es zeigt nicht Ihre Python-Version an oder prüftpython: command not found
, ob sich die PATH-Werte (Umgebungswerte, oben aufgeführt) / type ändernC:\(Python folder\python.exe
. Wenn dies erfolgreich ist, geben Siepython
oderC:\(Python installation)\python.exe
und das vollständige Verzeichnis Ihres Programms ein.quelle
Eine sehr verspätete Antwort, aber ich habe eine Windows-Batch-Datei
pythonbat.bat
mit dem folgenden Namen erstellt:und dann
pythonbat.bat
als Standardhandler für.py
Dateien angegeben.Wenn ich jetzt
.py
im Datei-Explorer auf eine Datei doppelklicke, wird ein neues Konsolenfenster geöffnet, das Python-Skript ausgeführt und dann angehalten (bleibt geöffnet), bis ich eine beliebige Taste drücke ...Keine Änderungen an Python-Skripten erforderlich.
Ich kann immer noch ein Konsolenfenster öffnen und angeben,
python myscript.py
ob ich ...(Ich habe gerade bemerkt, dass @maurizio diese genaue Antwort bereits gepostet hat)
quelle
Sie können PowerShell öffnen und "python" eingeben. Nachdem Python importiert wurde, können Sie den Quellcode aus Ihrem bevorzugten Texteditor kopieren und einfügen, um den Code auszuführen.
Das Fenster wird nicht geschlossen.
quelle
Wenn Sie das cmd-Fenster geöffnet lassen UND sich im Verzeichnis der laufenden Datei befinden möchten, funktioniert dies unter Windows 10:
quelle
Ich habe festgestellt, dass die Lösung in meiner py3-Umgebung bei win10 nur cmd oder Powershell als Administrator ausführt und die Ausgabe im selben Konsolenfenster bleibt. Jede andere Art von Benutzer-Python-Befehl führt dazu, dass Python ein neues Konsolenfenster öffnet.
quelle
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
print "hello world"
python hello.py
quelle
Ein einfacher Hack, um das Fenster offen zu halten:
Der Zähler ist so, dass sich der Code nicht wiederholt.
quelle
Der einfachste Weg:
Dadurch bleibt der Code 1 Minute lang geöffnet und wird dann geschlossen.
quelle
Unter Windows 10 fügen Sie zu Beginn Folgendes ein:
Seltsam, aber es funktioniert bei mir! (Zusammen mit input () am Ende natürlich)
quelle