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如何将数据写入txt

Python中pop什么意思

Python print用法详解

拿下 Python中的文件操作

Python中int是什么意思

浅析Python打包工具distutils、setuptools

Python中reload用法实例

怎么在ubuntu安装Python

Python的编写规范和命名规范的总结

Python开发学习包括哪些内容

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




打赏

取消

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

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

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

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

评论

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