2013-11-15 67 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() 
相关问题