我编写了一个python脚本,它将输入作为目录并列出该目录中的所有文件,然后解压缩每个文件并对其进行一些额外的处理。代码非常简单,使用os.listdir(目录)中的文件列表,并对列表中的每个文件进行解压缩,然后对其执行一系列不同的系统调用。我的问题是,是否有任何方法可以使循环执行并行或使代码运行更快,利用cpu上的核心,可能是什么,下面是一些演示代码来描述我的目标是优化:
files = os.listdir( directory )
for file in files:
os.system( "tar -xvf %s" %file )
os.system( "Some other sys call" )
os.system( "One more sys call" )
编辑:sys调用是唯一可行的方法,因为我使用某些CLI定制的实用程序,期望输入作为解压缩文件,因此解压缩。
答案 0 :(得分:0)
注意os.system()是同步的,即python在转到下一行之前等待任务完成。
这是我在Windows 7和Python 2.66上所做的简化
您应该可以根据需要轻松修改它
1.为我想要并行运行的每个任务创建并运行一个流程
2.他们全部开始后我等他们完成
getServerAuthCode()