python中subprocess批量执行linux命令


本文摘自php中文网,作者不言,侵删。

本篇文章给大家详细讲述了python中使用subprocess批量执行linux命令的方法,有兴趣的朋友参考学习下。

可以执行shell命令的相关模块和函数有:

  • os.system

  • os.spawn

  • os.popen --废弃

  • popen --废弃

  • commands --废弃,3.x中被移除

以上执行shell命令的相关的模块和函数的功能均在 subprocess 模块中实现,并提供了更丰富的功能。

subprocess

call

执行命令,返回状态码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

>>> import subprocess

>>> ret = subprocess.call(["ls", "-l"], shell=False)

total 4684

-rw-r--r-- 1 root root   454 May 5 12:20 aa.py

-rw-r--r-- 1 root root    0 May 8 16:51 aa.txt

-rw-r--r-- 1 root root 4783286 Apr 11 16:39 DockerToolbox.exe

-rw-r--r-- 1 root root   422 May 5 12:20 ip_info.txt

-rw-r--r-- 1 root root   718 Apr 19 10:52 my.cnf

>>> ret = subprocess.call("ls -l", shell=True)

total 4684

-rw-r--r-- 1 root root   454 May 5 12:20 aa.py

-rw-r--r-- 1 root root    0 May 8 16:51 aa.txt

-rw-r--r-- 1 root root 4783286 Apr 11 16:39 DockerToolbox.exe

-rw-r--r-- 1 root root   422 May 5 12:20 ip_info.txt

-rw-r--r-- 1 root root   718 Apr 19 10:52 my.cnf

>>> print(ret)

0

check_call

执行命令,如果执行状态码是 0 ,则返回0,否则抛异常

1

2

3

4

5

6

7

8

9

10

11

12

13

14

>>> subprocess.check_call(["ls", "-l"])

total 4684

-rw-r--r-- 1 root root   454 May 5 12:20 aa.py

-rw-r--r-- 1 root root    0 May 8 16:51 aa.txt

-rw-r--r-- 1 root root 4783286 Apr 11 16:39 DockerToolbox.exe

-rw-r--r-- 1 root root   422 May 5 12:20 ip_info.txt

-rw-r--r-- 1 root root   718 Apr 19 10:52 my.cnf

0

>>> subprocess.check_call("exit 1", shell=True)

Traceback (most recent call last):

 File "<stdin>", line 1, in <module>

 File "/usr/local/python3.5/lib/python3.5/subprocess.py", line 581, in check_call

  raise CalledProcessError(retcode, cmd)

subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1

check_output

阅读剩余部分

相关阅读 >>

Python 中正则表达式详解

Python通过公共键对字典列表排序(利用itemgetter函数)

Python实现有序字典的详细介绍(附代码)

Python的format怎么用

Python中关于复数属性以及方法运算的示例

Python各种图像库的图像读写方式的简单介绍(附代码)

Python os.chmod()方法是什么?它能起到什么作用?

Python为什么安装了运行不了?

map在Python中什么意思

关于Python函数的深度解剖

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...