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