Hi Folks My approach to open multiples files at same time is:
def openFiles(self,file,q): fp = open(file, 'rb') fp.seek(0) fcontent = fp.read() fp.close() q.put(fcontent) return def testOpen(self): L = ['file1.txt','file2.txt','file3.txt','file4.txt','file5.txt'] d1 = [] for x in L: z=L.index(x) q = Queue() m = Process(target=self.openFiles, args=(x,q,)) m.start() d1.append(q.get()) # <= This get is locking ? It is mean: "wait m.start(), like m.join()??" print list(d1) return Is the best way? Is q.get() locking the loop? I feel that q.get() is locking so I would like to "declare" dynamically the var q{z} in python? is it possible? How? def testOpen(self): L = ['file1.txt','file2.txt','file3.txt','file4.txt','file5.txt'] d1 = [] for x in L: z=L.index(x) q{z} = Queue() m{z} = Process(target=self.openFiles, args=(x,q{z},)) m{z}.start() for x in L: z=L.index(x) d1.append(q{z}.get()) # <= So now I am sure that q{z}.get() isn't lock print list(d1) return I tried use list but didn't work look below one shot. Best Regards macm I tried : def testOpen(self): L = ['file1.txt','file2.txt', 'file3.txt','file4.txt', 'file5.txt'] d1 = [] q = [] m = [] for x in L: z=L.index(x) q.insert(z, Queue()) m.insert(z,Process(target=self.openFiles, args=(x,q[z]))) m[z].start() # Now I am sure. Isnt lock for x in L: z=L.index(x) d1.append(q[z].get()) print list(d1) return -- http://mail.python.org/mailman/listinfo/python-list