2010-07-30 2 views
0

из любопытства и пытается понять модуль подпроцесс: Можно ли сделать что-то вроде:питон подпроцесс вызова «внутренний» процесс

import subprocess 

def myfun(arg): 
    # do stuff 

arg = something; 
p = subprocess.Popen(["myfun","arg"]) 

без сдачи «myfun» в файле своей собственной? Похоже, это вообще было бы страшно, если вы не будете осторожны в очистке дочерних процессов.

ответ

4

Вы можете передать Popen a preexec_fn, который является вызываемым объектом, выполняемым в дочернем процессе, перед тем как команда будет выполнена exec'd. Более стандартный подход заключается в использовании модуля multiprocessing, для которого требуется функция Python вместо внешней команды.

Смежные вопросы