并行处理所有文件的命令
我在构建服务器上有一个命令,这是构建过程的一部分:
os.system ('signtool sign /a /t http://timestamp.verisign.com/scripts/timstamp.dll "%s\\*.exe"' % (dir) )
这个命令会对指定目录中的每个可执行文件进行签名。有没有办法用Python让这个命令对每个可执行文件同时运行呢?Python里有没有类似于OpenMP的东西?
3 个回答
1
上面的回答从Python的角度来看是很合理的,比如:
from multiprocessing import Pool
import os
def processFile(x):
return os.system('ls '+x)
if __name__ == '__main__':
pool = Pool(processes=2)
files=['foo','foo.py','foo.cpp','foo.txt','foo.bar']
result = pool.map(processFile, files)
print 'Results are', result
但是如果你已经在使用命令行的话,可以考虑在命令行中使用Gnu Parallel。这个工具的工作方式类似于xargs,但它可以同时运行多个任务,并且你可以选择同时运行多少个任务等等。
1
也许 multiprocessing
这个模块可以帮到你?
特别是 multiprocessing.Pool.map()
这个功能,可能正好符合你的需求。
1
你可以使用线程。这个教程展示了如何用线程来做你所提到的类似的事情。