python杀死子进程后继续执行后面程序

Python016

python杀死子进程后继续执行后面程序,第1张

os.system的返回值是运行结果,用p命名没什么意义,建议用Popen比较好控制,例如

import subprocess

a = subprocess.Popen('dir',shell = True)

然后就可以用a.kill()来杀进程

#coding:utf-8

import os, time, commands

while os.path.exists(r'I:\新建文件夹'):

    while os.path.exists(r'I:\新建文件夹\DCIM'):

        cmd = 'taskkill /F /IM notepad.exe'

        ##print 3

        commands.getstatus(cmd)  

        time.sleep(60)

用commands 调用cmd命令不会弹框,增加了一个延时,一分钟才检测一次(这个你自己喜欢可以调整),判断条件是是否有U盘中的新建文件夹,你也可以把循环条件调成当检测到U盘的时候。这个是一直在运行的,不会停,除非关掉进程或者拔U盘。

任何一种编程语言,启动进程和关闭进程都是跟操作系统相关的操作,python中与操作系统打交道的话,推荐使用os模块

os.system() 函数可以启动一个进程,执行完之后返回状态码。

os.fork() 复制一个进程,如果是子进程返回0,如果是父进程返回子进程的pid,使用这个函数的时候,建议你学习一下linux编程的知识。

os.popen 以管道的方式创建进程。

os.spawnl 也可以创建进程,并能指定环境变量。

os.kill(pid, sig) 关闭一个进程,pid是进程号,sig是信号。与fork配合使用,例如你刚才用fork创建了一个子进程,它的pid是11990, 那么调用

os.kill( 11990, signal.CTRL_BREAK_EVENT)

就以ctrl+c的方式杀死了这个进程。

另外还有一个模块multiprocessing,这个模块封装了很多创建进程和进程间通信的操作,可以让你发挥多核的威力。