2012-04-13 20 views
2

Ich habe ein Python-Programm, das Batteriespannungen und Temperaturen in einem Elektroauto anzeigt. Ich führe es normalerweise von einer Befehlszeile auf einem Mac aus, indem ich einfach den Aufwärtspfeil verwende, um den Befehl zum Ändern des Verzeichnisses zu finden, und dann den Pfeil nach oben, um den Befehl zum Ausführen des Programms zu finden. Wir haben herausgefunden, wie man ein Skript schreibt, das dies automatisch ausführt und es als Anwendung speichert. Es funktioniert großartig, aber ich weiß nicht, wie ich das Programm beenden soll. Ich benutze Control C bei der Verwendung der Befehlszeile. Wie kann ich ein Skript oder eine App ausführen? Ich möchte unsere Kunden nicht bitten, die Befehlszeile zu verwenden.Stoppen eines Python-Programms

+3

Was für ein Programm tun können, ist es? GUI? TUI? –

+0

Unter welchen Bedingungen soll es aufhören? Es wäre leicht, das Programm zum Beispiel nach einer gewissen Zeit zu beenden. Oder möchten Sie dem Endanwender eine grafische Oberfläche zur Verfügung stellen, mit der er sie beenden kann? Vielleicht ein separates .py-Skript, auf das sie doppelklicken könnten? – octern

+0

Das Programm ist ein Realtim-Grafikdisplay. Der einzige Grund dafür, dass es aufhört, ist, wenn der Kunde es fertig betrachtet - genauso wie Word oder ein anderes Programm zu beenden. Da wir es als Mac-App laufen lassen, möchten wir es beenden, indem wir einfach auf den roten Schließen-Knopf klicken. Wäre das schwer zu tun? – user1330678

Antwort

2
import sys; sys.exit() 

stoppt das Python-Programm. Wenn Sie diesen Code aufrufen, liegt es an Ihnen und hängt von den Details Ihres Programms ab (Sie könnten es passieren, wenn eine bestimmte Taste gedrückt wird, oder nach einer bestimmten Zeit oder wenn andere Bedingungen erfüllt sind). Seien Sie auch vorsichtig, wenn Sie vor dem Programmende "Aufräumen" müssen - dies hängt auch von der Art der Anwendung ab.

Wenn aus irgendeinem Grund Sie es in genau stoppen wollen die gleiche Weise bei gedrückter Ctrl-C wie Schlagen, Sie

raise KeyboardInterrupt 
+0

Das Programm stoppt sauber mit einem Control c von einer Befehlszeile, aber jetzt läuft es ohne Terminalfenster, so dass wir in der Lage sein müssen, das Programm mit der roten Beenden-Taste zu beenden. – user1330678

+1

Dann, wie ich in der Antwort sage, machen Sie einen roten Quit Button, der den Code 'import sys; sys.exit() '. Wie Sie die rote Schaltfläche "Beenden" erstellen, hängt vollständig von den Details der Anwendung ab. –

Verwandte Themen