dieser Code Gegeben zu handhaben:Wie Konsole verlassen und Objekt Zerstörung
from time import sleep
class TemporaryFileCreator(object):
def __init__(self):
print 'create temporary file'
# create_temp_file('temp.txt')
def watch(self):
try:
print 'watching tempoary file'
while True:
# add_a_line_in_temp_file('temp.txt', 'new line')
sleep(4)
except (KeyboardInterrupt, SystemExit), e:
print 'deleting the temporary file..'
# delete_temporary_file('temp.txt')
sleep(3)
print str(e)
t = TemporaryFileCreator()
t.watch()
während der t.watch()
, ich möchte diese Anwendung in der Konsole schließen ..
Ich versuchte CTRL+C
verwenden und es funktioniert:
wenn ich jedoch die Exit-Button klicken:
es funktioniert nicht .. Ich habe dies viele ähnliche Fragen zu, aber es scheint, dass ich nicht die richtige Antwort ..
finden können, was ich tun möchte:
Die Konsole verlassen werden kann während das Programm noch läuft .. um das zu handhaben, wenn die Exit-Taste gedrückt wird, möchte ich eine Aufräumung der Objekte (Löschen von erstellten temporären Dateien), Rollback von temporären Änderungen, etc ..
Frage :
- Wie kann ich mit dem Konsolen-Exit umgehen?
- Wie kann ich es in Objektdestruktoren integrieren (
__exit__()
) - Ist es überhaupt möglich? (Wie etwa py2exe?)
Hinweis: Code wird auf py2exe kompiliert werden .. „hofft, dass die Wirkung ist die gleiche“
umm, was? Wenn Sie das X drücken, wird die Anwendung nicht vom Betriebssystem gelöscht? – gsamaras
@gsamaras, ja, aber ich möchte einige Objekt Bereinigung tun, nachdem die X-Taste gedrückt wird .. deshalb .. Ich werde es in meiner Frage hinzufügen .. – catzilla
Wenn Sie X-Taste drücken Sie töten Elternprozess Ihres Python Prozess ... wenn Sie STRG + C drücken, unterbrechen Sie Ihren Python-Prozess, und er geht in Ihren Ausnahmebehandlungsblock ... was ich meine, ist das Drücken der X-Taste führt Ihr Programm nicht zur Ausnahmebehandlung, und meine Frage ist was Sie tun willst du machen? –