有没有办法在一个进程中使用subprocess打开多个文件?

17 浏览
0 Comments

有没有办法在一个进程中使用subprocess打开多个文件?

我写了一些像下面这样的语句:

os.system(cmd) #做一些事情
subprocess.call('taskkill /F /IM exename.exe')

这两个语句都会弹出一个控制台。

我该如何阻止它弹出控制台?

0
0 Comments

有时候我们需要在一个进程中同时打开多个文件,但是使用subprocess调用子进程时,只能打开一个文件。下面是一些关于如何解决这个的问题:

最简单的方法是在subprocess调用中添加shell=True参数,如下所示:

subprocess.call('taskkill /F /IM exename.exe', shell=True)

或者,如果你不需要等待子进程结束,可以使用subprocess.Popen而不是subprocess.call,如下所示:

subprocess.Popen('taskkill /F /IM exename.exe', shell=True)

这种方法很简洁,但是需要注意的是,在使用shell=True时可能会出现安全问题,因为用户可以操纵输入。

另一种方法是使用startupinfo技术,这种方法更加复杂,但是可以避免使用shell=True时可能出现的安全问题。

需要注意的是,如果使用shell=True,子进程可能无法感知到输入已经关闭的情况。

0