os.system的返回值是运行结果,用p命名没什么意义,建议用Popen比较好控制,例如
import subprocessa = subprocess.Popen('dir',shell = True)
然后就可以用a.kill()来杀进程
#coding:utf-8import 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,这个模块封装了很多创建进程和进程间通信的操作,可以让你发挥多核的威力。