Python 有一个名为 subprocess 的标准库模块,可以用来执行系统命令。下面是使用 subprocess 模块进行系统命令操作的完整攻略:
Python 有一个名为 subprocess
的标准库模块,可以用来执行系统命令。下面是使用 subprocess
模块进行系统命令操作的完整攻略:
引入模块
首先需要引入 subprocess
模块:
import subprocess
执行命令
接下来使用 subprocess.run()
方法来执行系统命令。这个方法的调用方式如下:
subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, encoding=None, errors=None)
其中参数 args
是一个字符串或者字符串列表,表示要执行的命令。
如果参数 shell
被设置为 True
,则可以使用 shell 命令语法。
例如,要在 Linux 上执行一个简单的 ls
命令并在控制台打印出结果,可以这样做:
subprocess.run(['ls', '-l'])
如果要在 Windows 上执行一个 dir
命令,也可以这么做:
subprocess.run(['cmd', '/c', 'dir'])
注意 Windows 上使用 CMD 时需要在命令前加上 /c
参数,来表示跟随的命令字符串。
捕获命令输出
如果要捕获命令输出,可以使用参数 stdout
和 stderr
。这两个参数可以是一个文件对象或者一个文件描述符,也可以是一个 subprocess.PIPE
对象,表示当子进程执行时捕获 stdout 和 stderr 数据。
例如,下面的代码在执行完一个 ls
命令后将结果保存在一个变量 result
中:
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode())
在 Windows 上使用 dir
命令时也可以通过 subprocess.PIPE
捕获输出:
result = subprocess.run(['cmd', '/c', 'dir'], stdout=subprocess.PIPE)
print(result.stdout.decode())
示例
下面是一个完整的示例,用于在 Python 中执行 ping
命令,并输出结果到控制台:
import subprocess
hostname = "google.com"
result = subprocess.run(['ping', '-c', '5', hostname], stdout=subprocess.PIPE)
print(result.stdout.decode())
下面是一个 Windows 上的示例,用于执行一个简单的 ipconfig
命令:
import subprocess
result = subprocess.run(['cmd', '/c', 'ipconfig'], stdout=subprocess.PIPE)
print(result.stdout.decode())
注意,在 Windows 上,在命令最后面并不需要使用 &
符号。
本文标题为:Python如何执行系统命令


基础教程推荐
- 分享Python 的24个编程超好用技巧 2023-12-12
- Linux环境安装python3 2023-09-04
- 在Linux中达到一定大小后,停止将Python脚本写入文件 2023-11-12
- 如何将python ImportError捕获为Shell错误 2023-11-14
- 如何使用Windows命令提示符安装Python 2023-11-16
- python之进程池和线程池 2023-09-03
- windows创建定时任务执行python脚本 2023-09-03
- python基础之并发编程(一) 2023-08-05
- python-使用Nginx提供静态内容的Django 2023-11-13
- python-Django nginx管理媒体 2023-11-15