如何用Python执行linux命令

By 刘志军 , 2020-06-04, 分类: qa

python

方法1: 使用 subprocess.call

如果你在Linux中执行的命令是:

ls -l

那么你只要将命令按空格分隔,转换成列表,作为参数传给 subprocess.call 即可。

>>> import subprocess
>>> subprocess.call(["ls", "-l"])
total 72
lrwxrwxrwx   1 root root     7 Jul 19  2018 bin -> usr/bin
dr-xr-xr-x   5 root root  4096 Dec  1  2018 boot
drwxr-xr-x   3 root root  4096 Nov 10  2019 data
drwxr-xr-x  19 root root  2980 May 23 00:12 dev
drwxr-xr-x  89 root root  4096 Apr 16 21:43 etc
drwxr-xr-x   4 root root  4096 Dec 14 23:10 home
lrwxrwxrwx   1 root root     7 Jul 19  2018 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Jul 19  2018 lib64 -> usr/lib64
drwx------   2 root root 16384 May 12  2016 lost+found
drwxr-xr-x   2 root root  4096 Apr 11  2018 media
drwxr-xr-x   2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x   2 root root  4096 Apr 11  2018 opt
dr-xr-xr-x 113 root root     0 Feb  5 00:22 proc

方法2:使用 subprocess.run

subprocess.run 是 python3.5 引入的方法,如果你是使用python,那么推荐用此方法。

>>> import subprocess
>>> subprocess.call(["ls", "-l"])
total 72
lrwxrwxrwx   1 root root     7 Jul 19  2018 bin -> usr/bin
dr-xr-xr-x   5 root root  4096 Dec  1  2018 boot
drwxr-xr-x   3 root root  4096 Nov 10  2019 data
drwxr-xr-x  19 root root  2980 May 23 00:12 dev
drwxr-xr-x  89 root root  4096 Apr 16 21:43 etc
drwxr-xr-x   4 root root  4096 Dec 14 23:10 home
lrwxrwxrwx   1 root root     7 Jul 19  2018 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Jul 19  2018 lib64 -> usr/lib64
drwx------   2 root root 16384 May 12  2016 lost+found
drwxr-xr-x   2 root root  4096 Apr 11  2018 media
drwxr-xr-x   2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x   2 root root  4096 Apr 11  2018 opt
dr-xr-xr-x 113 root root     0 Feb  5 00:22 proc

关注公众号「Python之禅」,回复「1024」免费获取Python资源

python之禅

猜你喜欢

2015-06-17
如何在Python中正确使用static、class、abstract方法
2020-06-13
python 中 xml 转换为 json
2017-12-26
5个酷毙的Python工具
2020-06-01
最新抖音去水印解析
2017-05-15
一步一步教你认识Python闭包
2022-03-13
从一段小代码开始学习如何重构
2013-10-30
Python“不为人知的”特性
2020-06-07
python合并两个字典
2019-03-09
30个Python 小例子,帮你快速上手Python
2014-03-26
斐波那契数列(Fibonacci)递归与非递归的性能对比