在Python中同时运行os.system()多次?

时间:2012-08-24 18:16:38

标签: python multithreading

我编写了以下简短的python脚本,在Fedora 17系统上使用cclive下载flv视频。

urls = [line.strip() for line in open("urls.txt")]
for url in urlstoget:
    os.system('cclive %s' % url)

它工作正常,但视频限制在80kbps左右。我有39下载,并希望同时下载2-4。

如何同时多次运行os.system()命令?

2 个答案:

答案 0 :(得分:9)

使用threadingmultiprocessing

以下是使用多处理的示例:

def retrieve_url(url):
    os.system('cclive %s' % url)

pool = multiprocessing.Pool(4)
pool.map(retrieve_url, list_of_urls)

指向另一个SO问题的链接:Python - parallel commands

答案 1 :(得分:3)

查看子进程模块,特别是Popen()方法。您也可以使用os.fork()