Podle mně tu:
http://docs.python.org/library/exceptions.html#exceptions.SystemExit ale
nejsem si tím zas až tak jistý, na linuxu to je třeba tak že když program
běží a uživatel zavře emulátor terminálu (gnome-terminal) tak mu to hodí
hlášku "V tomto terminálu stále běží nějaký proces. Zavřením terminálu jej
ukončí." Obávám se že když se zavře okno tímhle stylem tak je proces spíše
zabit než že by byl zavolán sys.exit...

2011/1/25 <g...@post.cz>

> Díky, funguje. A dá se ve win odchytit i zavření okna, kde běží
> pythonovský script?
>
>
> Hynek Fabian napsal(a), dne 25.1.2011 11:36:
> > ^C ma  defaultni handler, odchyt vyjimku KeyboardInterrupt.
> > Btw delat v kontextu signal handleru blokujici operace neni moc dobrej
> napad.
> >
> > g...@post.cz (Tuesday 25 January 2011 06:37:51):
> >> Ahoj,
> >>
> >> v jedné části programu kopíruji soubory (obvykle velké) a chci mít
> >> zajištěno, že když dám ctrl+c tak že v cíli nezbude jen část souboru -
> >> chci zajistit jeho smazání přes odchycení sigint:
> >>
> >> def signal_handler(signal, frame):
> >>         print 'You pressed Ctrl+C!'
> >>         print dest
> >>         if os.path.isdir(item):
> >>                 shutil.rmtree(dest)
> >>         if os.path.isfile(item):
> >>                 os. remove(dest)
> >>         sys.exit(0)
> >>
> >> signal.signal(signal.SIGINT, signal_handler)
> >>
> >> toto ale nefunguje, protože cíl je asi stále otevřen původním procesem
> >> kopírování. Díky za rady jak z toho ven.
> >>
> >> You pressed Ctrl+C!
> >> xyz.mkv
> >> Traceback (most recent call last):
> >>   File "D:\Zaloha\W7610034.py", line 48, in <module>
> >>     shutil.copy(item, dest)
> >>   File "C:\prg\Python26\lib\shutil.py", line 88, in copy
> >>     copyfile(src, dst)
> >>   File "C:\prg\Python26\lib\shutil.py", line 54, in copyfile
> >>     copyfileobj(fsrc, fdst)
> >>   File "C:\prg\Python26\lib\shutil.py", line 30, in copyfileobj
> >>     fdst.write(buf)
> >>   File "D:\Zaloha\W7610034.py", line 11, in signal_handler
> >>     os. remove(dest)
> >> WindowsError: [Error 32] Proces nemß p°Ýstup k souboru, neboŁ jej prßvý
> >> vyu×Ývß
> >> jinř proces: 'xyz.mkv'
> >>
> >>
> >>
> >> xpsp3, py2.x
> >>
> >> Díky
> >> geon
> >> Pavel Kosina
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Python mailing list
> >> Python@py.cz
> >> http://www.py.cz/mailman/listinfo/python
> > _______________________________________________
> > Python mailing list
> > Python@py.cz
> > http://www.py.cz/mailman/listinfo/python
> >
>
>
> --
> Náhodný citát:
> Přátelství mezi mužem a ženou nemůže existovati jako prvotní cit.
>                -- Lawrence
> _______________________________________________
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem