import subprocess
import time
todo = []
for file in list:
for filename in file:
todo.append(filename)
running_processes = []
while len(todo)>0:
running_processes = [p for p in running_processes if p.poll() is None]
if len(running_processes)<8:
target = todo.pop()
running_processes.append( subprocess.Popen(['python','process_gzip.py',target]) )
time.sleep(1)
可以同时打开多个文件。例如:
(顺便说一句,不要将您的文件列表称为“
list
”,也不要将文件列表称为“file
”,因为它们是语言的保留字,不能描述您的案例中的对象是什么)。你知道吗现在它将需要大约相同的时间,因为您总是一次处理一个。那么,您想并行化的是对它们的处理吗?然后你想看看
threading
或multiprocessing
。你知道吗您正在寻找
os.path.walk
来遍历目录吗?(https://docs.python.org/2/library/os.path.html)。您还可以执行以下操作:您对
fileinput
迭代来自多个输入流的行感兴趣吗?(https://docs.python.org/2/library/fileinput.html,fileinput.hook_compressed
似乎处理gzip)。你知道吗将繁重的处理移到一个单独的程序中,然后用subprocess调用该程序以保持一定数量的并行进程运行:
相关问题 更多 >
编程相关推荐