2013-11-15 73 views
2

我想運行兩個孩子的過程作爲如何在Python中使用多處理時創建進程子進程而True?

#!/usr/bin/env python 
from multiprocessing import Process 
import time 

def method(namelog): 
    filelog = open(namelog,'w') 
    while True: 
     time.sleep(0.1) 
     filelog.write('test log anything \n') 
if __name__ == '__main__': 
    p1 = Process(target=method, args=('log1.log',)) 
    print "start process1" 
    p1.start() 
    p2 = Process(target=method, args=('log2.log',)) 
    print "start process2" 
    p2.start() 

結果:

start process1 
start process2 

program create 2 file log1.log and log2.log 
but not save data 

我的事情過程中產生的,但它不能正常工作 幫助我!

回答

1

您必須關閉文件才能寫入。請注意,我將open()中的模式從寫入更改爲追加。

試試這個:

from multiprocessing import Process 
import time 

def method(namelog): 
    while True: 
     with open(namelog,'a') as filelog: 
      time.sleep(0.1) 
      filelog.write('test log anything \n') 
if __name__ == '__main__': 
    p1 = Process(target=method, args=('log1.log',)) 
    print "start process1" 
    p1.start() 
    p2 = Process(target=method, args=('log2.log',)) 
    print "start process2" 
    p2.start() 
相關問題