出于好奇并试图理解子进程模块:是否可以执行以下操作:
import subprocess
def myfun(arg):
# do stuff
arg = something;
p = subprocess.Popen(["myfun","arg"])
没有将“myfun”放在自己的文件中?如果你不小心清理子进程,这似乎是一件可怕的事情。
答案 0 :(得分:4)
您可以传递Popen
一个preexec_fn
,这是在执行命令之前在子进程中执行的可调用对象。更标准的方法是使用multiprocessing
模块,该模块需要Python函数而不是外部命令。