在CMD上只杀死python创建的子进程



我制作了一个python脚本,通过运行一个可以在Windows和Linux上工作的shell命令,使用aria2下载器下载。

os.system("aria2c " + url + options)
#some code I want to run if the process is stopped

现在,我想测试我的程序在文件无法下载的情况下。因此,在命令提示符(cmd.exe(Windows上执行"python downloader.py"后,我按Ctrl+C仅停止下载(仅限">aria2c.exe"进程(,但继续运行我的python代码。

Ubuntu终端上执行此操作效果良好!但在cmd窗口上,Ctrl+C会停止">aria2c.exe"进程,但也会停止我的python代码。我想知道我可以在命令提示符下实现这一点吗?

如果你需要知道,这就是cmd:上显示的内容

File "downloader.py", line 106, in download
os.system(myCommand)
Keyboard interrupt

您可以捕获KeyboardInterrupt异常,然后执行您想要的代码。

if __name__ == '__main__':
try:
os.system("aria2c " + url + options)
except KeyboardInterrupt:
print('Keyboard Interrupt Detected')
# the rest of your code
pass

如果操作系统是windows,此代码将在单独的命令提示符中打开EXE。

import os
if os.name == 'nt':
os.system("start /wait cmd /c aria2c " + url + options)
else
os.system("aria2c " + url + options)

相关内容

  • 没有找到相关文章

最新更新