2013-04-27 58 views
0

我想在Python中使用子處理,但我不明白它是否可以與一個函數一起使用,因爲在官方Python文檔中,subprocess.Popen的語法需要參數,但我沒有看到任何東西這可能與某個功能有關。還是有另一種方法來產生一個專用於一個沒有子進程的函數的新進程?使用具有函數的子進程?

+0

你真的需要子過程嗎?線程怎麼樣? – gatto 2013-04-27 13:10:35

回答

1

你需要的是多進程沒有子處理

http://docs.python.org/library/multiprocessing.html#the-process-class

from multiprocessing import Process 

def my_function(name): 
    print "My name is %s" % name 

if __name__ == '__main__': 
    p = Process(target=my_function, args=('Yarkee',)) 
    p.start() 
    p.join() # this blocks until the process terminates 
+0

我嘗試了多處理,但它總是與tkinter(用於GUI)衝突。 – Pollux 2013-04-27 13:07:10

0

蟒蛇模塊可以用來調用外部程序是這樣的:

import subprocess 
subprocess.call(["ls", "-l"]) 

儘管@Yarkee提到的多處理被綁定到一個函數,它可能是你在找什麼。