有时候你难免会有很多个Command Line下的程序,这些程序必须得一个接一个地顺序跑完,而你又不想要坐在电脑前面等一个跑完了去输入下一个命令去跑下一个程序,那也许你可以用Python来把你这些命令都写在里面,然后你就可以安心地去做你的事情,让这些程序自己跑去就好了。最后等一段时间等你有空的时候,也许是一天半天,也可能是一个星期(如果你的程序是放在一个远程的电脑上跑的话),再回来看看你的程序,你就可以去收集你所需要的结果了
主要的Idea是用一个主进程,对你自己的每个命令都创建一个子进程,主进程挂起等待子进程执行完毕,然后继续创建下一个子进程。
下面是一小段打印hello world的简单demo
'''
28/07/2013
A little snippet to arrange your Linux tasks
'''
from multiprocessing import Pipe, Process
import os
# Add your Linux command line by the order you want in this list
tasks = ['echo hello', 'echo world']
def foo(task):
os.system(task)
if __name__ == "__main__":
for task in tasks:
# create a process for each task
p = Process(target=foo, args=(task,))
p.start()
# wait for the child process to finish
p.join()
最后引用一句我特别喜欢的话:Life is short, you need Python. ;-)