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