Python如何同时运行多个shell命令?

Python/PHP/Perl 开发与设计
回复
flac
帖子: 408
注册时间: 2009-05-29 15:21
送出感谢: 2 次
接收感谢: 1 次

Python如何同时运行多个shell命令?

#1

帖子 flac » 2017-02-18 22:23

cmd1 = "uxterm -e aria2 ..."
subprocess.call(cmd1, shell=True)

cmd2 = "mplayer ..."
subprocess.call(cmd2, shell=True)


像上面那样,必须cmd1结束后才开始运行cmd2,我想要cmd1和cmd2同时运行,该怎么办?
也就是cmd1打开一个xterm窗口让它去执行aria2下载的同时,cmd2这边的mplayer也能同时执行。

初学python的新手,请多指教。 :em06
头像
vickycq
论坛版主
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
送出感谢: 100 次
接收感谢: 995 次
联系:

Re: Python如何同时运行多个shell命令?

#2

帖子 vickycq » 2017-02-18 22:34

这些用户感谢了作者 vickycq 于这个帖子:
flac (2017-02-18 23:57)
评价: 3.7%
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
buntutu
帖子: 61
注册时间: 2009-11-25 1:38
送出感谢: 0
接收感谢: 7 次

Re: Python如何同时运行多个shell命令?

#3

帖子 buntutu » 2017-03-10 18:37

使用 Popen(), 不要用 call() 就可以
头像
hceasy
论坛版主
帖子: 5982
注册时间: 2010-04-17 18:51
系统: W10
送出感谢: 1 次
接收感谢: 2 次

Re: Python如何同时运行多个shell命令?

#4

帖子 hceasy » 2017-11-28 10:42

import threading
cmd1 = threading.Thread(target=shell1)
threads.append(cmd1)
cmd2 = threading.Thread(target=shell2)
threads.append(cmd1)
for t in GLOBAL_VAR.threads:
t.start()
t.join()
如果有同时读取一个变量的操作 注意用原子锁
回复

回到 “Python/Php/Perl”