V *nixu emulator terminalu pri zavirani posle SIGHUP Defaultni akce je ukonceni procesu coz by v pythonu melo vystrelit vyjimku SystemExit (IMO, nezkousel jsem to)
g...@post.cz (Tuesday 25 January 2011 19:15:12): > 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 _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python