我有一个python脚本,它使用线程并发出大量的HTTP请求。我认为发生的事情是,当HTTP请求(使用urllib2)正在读取时,它会阻止并且不响应CtrlC停止该程序。有没有办法解决?使用ctrl + c停止python
回答
在Windows中,唯一可靠的方法是使用Ctrl键歇。立即停止每个Python脚本!
(请注意,某些键盘上,“破发”被标记为“暂停”。)
它的工作原理,谢谢 – jonatron 2009-09-01 19:29:46
什么是'Break'?我如何输入它? – u0b34a0f6ae 2009-09-01 19:44:48
键盘上应该有一个Pause_Break按钮 – jonatron 2009-09-01 20:10:18
如果在Python外壳采用按Ctrl +ž运行,否则找到python
进程和杀死它。
'^ Z' - >'[1] +停止' - >'kill%1'停止作业#1(或bash放置作业%1) – u0b34a0f6ae 2009-09-01 19:44:06
yes! Ctrl + Z适合我! – 2013-04-20 03:11:56
值得添加的答案是Ctrl + Z只是*暂停*进程。 – 2013-08-24 14:50:21
按按Ctrl +ç一个 Python程序运行后会导致蟒蛇养KeyboardInterupt例外一段时间。很多HTTP请求的程序可能会有很多异常处理代码。如果try-except块的except部分没有指定它应该捕获哪些异常,它将捕获所有异常,包括刚刚引起的KeyboardInterupt。一个正确编码的python程序将使用python exception hierarchy,并且只捕获异常派生的异常。
#This is the wrong way to do things
try:
#Some stuff might raise an IO exception
except:
#Code that ignores errors
#This is the right way to do things
try:
#Some stuff might raise an IO exception
except Exception:
#This won't catch KeyboardInterupt
如果你不能改变的代码(或需要杀死的程序,以便您的更改将生效),那么你可以尝试按下Ctrl键+Ç迅速。第一个KeyboardInterupt异常会将你的程序从try块中取出,希望当程序在try块之外时,将会引发KeyboardInterrupt之后的异常。
这是启用最常见的“break”是ctrl + c。 – Xerion 2016-04-21 19:09:22
中断过程是硬件和操作系统相关的。所以你将会有非常不同的行为,这取决于你在哪里运行你的python脚本。例如,在Windows机器上,我们有按Ctrl +Ç(SIGINT
)和按Ctrl +休息(SIGBREAK
)。
因此,尽管SIGINT存在于所有系统,可以处理和捕获,SIGBREAK信号是Windows特定(并可以在CONFIG.SYS被禁用),是否真由BIOS处理的中断矢量INT 1Bh,这就是为什么这个键比其他任何键都强大得多。所以如果你使用的是一些* nix风格的操作系统,你会得到不同的结果,这取决于实现,因为那个信号不存在于那里,但其他的都是。在Linux中,您可以检查信号是什么提供给您的是:如果你想赶上CTRL+BREAK
signal Linux系统,你必须检查哪些POSIX signal他们绘制了关键的
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGEMT 8) SIGFPE 9) SIGKILL 10) SIGBUS
11) SIGSEGV 12) SIGSYS 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGURG 17) SIGSTOP 18) SIGTSTP 19) SIGCONT 20) SIGCHLD
21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGPWR 30) SIGUSR1
31) SIGUSR2 32) SIGRTMAX
左右。热门映射是:
CTRL+\ = SIGQUIT
CTRL+D = SIGQUIT
CTRL+C = SIGINT
CTRL+Z = SIGTSTOP
CTRL+BREAK = SIGKILL or SIGTERM or SIGSTOP
事实上,越来越多的功能的Linux,其中SysRq的(系统请求)键可以在a life of its own下可...
这个职位是旧的,但我最近遇到同样的问题CTRL+C
没有终止我的Linux
上的python脚本。我用了CTRL + \
(SIGQUIT
)。
谢谢!简洁。 – 2016-11-25 18:57:11
尽管它会导致核心转储,但它确实停止了脚本,谢谢 – ospider 2017-12-14 02:42:56
开/在终端的Mac:
- 显示检查(终端窗口或外壳>显示检查内右击)
- 点击上述“正在运行的进程”
- 然后从设置图标“信号处理组”下的选项列表(杀死,终止,中断等)。
ctrl + q会立即停止运行代码并关闭所有窗口。
在Mac按下:
“对照” + “\”
退出连接到终端的蟒过程。
- 1. CTRL-C终止于python
- 2. 使用gulp-nodemon&gulp.watch时,无法使用Ctrl + C停止Gulp
- 3. Ctrl-c在cygwin中停止工作
- 4. Ctrl-C停止shell脚本执行
- 5. C++停止询问输入在CTRL-D
- 6. Ctrl-c不停止Python脚本上的树莓pi
- 7. 无法使用Ctrl + C(Mac)停止本地节点服务器
- 8. 无法使用CTRL-C停止rails服务器
- 9. http-server在使用Ctrl + C时不停止服务器
- 10. WPF停止Ctrl + Alt +德尔和使用C#
- 11. 当“ctrl c”用于终止程序时程序不停止
- 12. ctrl-c ctrl-v在visual studio 2010和2012中停止工作
- 13. Vim Ctrl- [停止工作
- 14. Ctrl-W停止工作
- 15. Python脚本无法通过按Ctrl + C或Ctrl终止+ BREAK
- 16. 使用concurrent.futures或multiprocessing下载文件 - 如何停止使用Ctrl-C?
- 17. 如何使用JavaScript阻止Ctrl + - ,Ctrl ++?
- 18. 如何使用python发送ctrl a + c?
- 19. CTRL + C不会停止西纳特拉应用
- 20. Python,Pyautogui和CTRL-C
- 21. 如何在不使用ctrl-c的情况下停止瓶的应用
- 22. 按下Ctrl + C后,如何在程序停止前让Python完成作业?
- 23. 一旦python脚本从终端(Ctrl-C)停止,如何释放Ubuntu内存?
- 24. 停车RabbitMQ的应用(按Ctrl-C)
- 25. 终止简单的python服务器不会关闭用Ctrl + C
- 26. 在Python中停止迭代
- 27. 如何使用Ctrl + Z停止要求输入?
- 28. 跳转到标签(Ctrl-])停止工作
- 29. 停止CTRL-点击从影响父DataGrid
- 30. 停止贝尔CTRL-A(的WinForms)
我不知道为什么,但至少在OS X上,使用Control +反斜杠导致它终止,并且你得到一个“python崩溃”的对话......奇怪。不是真正有用的信息,因此它是一个评论! – micmoo 2009-09-01 20:18:34
实际上它适用于终端中的所有应用程序...... – micmoo 2009-09-01 20:19:15
David Beazley描述了Ctrl/C中断如何将多线程Python脚本转换为CPU。这里有一个链接Beazley谈话的内容(http://stackoverflow.com/questions/990102/python-global-interpreter-lock-gil-workaround-on-multi-core-systems-using-tasks)。 – 2009-09-02 07:09:39