Piszę program, który buforuje niektóre wyniki przez moduł pikle. Co się dzieje w tej chwili jest to, że jeśli uderzę CTRL-C podczas operacji dump
występuje, dump
zostaje przerwany i wynikowy plik jest uszkodzony (czyli tylko częściowo napisany, więc to nie może być load
ed ponownie.Jak zapobiec blokowaniu kodu przez KeyboardInterrupt w Pythonie?
Czy istnieje sposób, aby dump
, albo w ogóle bloku kodu, żródło Moje bieżące obejście wygląda mniej więcej tak:?
try:
file = open(path, 'w')
dump(obj, file)
file.close()
except KeyboardInterrupt:
file.close()
file.open(path,'w')
dump(obj, file)
file.close()
raise
wydaje się głupie, aby ponownie uruchomić operację, jeśli zostanie przerwane, więc szukam sposobu przerwać przerwanie Jak to zrobić?
Super pomocne, dzięki. – JeffThompson
To rozwiązanie jest lepsze niż te z modułem 'signal', ponieważ znacznie łatwiej jest go uzyskać. Nie jestem pewien, czy możliwe jest nawet napisanie solidnego rozwiązania opartego na sygnale. – benrg