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内置的pickle库的对象序列化与反序列化

Python中应用的小案例分享

嵌入式软件和Python有关吗

Python两列字符串如何合并?

Python基础环境搭建的方法(图文)

利用Python反向输出一个字符串

Python是面向对象还是面向过程?

Python中根据字符串导入模块module的方法介绍(附代码)

Python如何查找字符串的长度?(代码示例)

Python学什么数据库

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




打赏

取消

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

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

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

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

评论

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