Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python subprocess模块

作者:断念已残   发布日期:2026-04-20   浏览:8

import subprocess

# 示例1: 使用subprocess.run()执行简单命令并获取返回值
result = subprocess.run(['echo', 'Hello, World!'], capture_output=True, text=True)
print("输出:", result.stdout)

# 示例2: 使用subprocess.Popen()与进程交互
with subprocess.Popen(['ping', '-c', '4', 'google.com'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) as proc:
    stdout, stderr = proc.communicate()
    print("标准输出:\n", stdout)
    print("标准错误:\n", stderr)

# 示例3: 执行shell命令并捕获异常
try:
    completed_process = subprocess.run('ls -l /nonexistent_directory', shell=True, check=True, capture_output=True, text=True)
    print("命令成功执行")
except subprocess.CalledProcessError as e:
    print(f"命令执行失败,返回码: {e.returncode}")
    print(f"错误信息: {e.stderr}")

# 示例4: 使用subprocess.PIPE进行输入输出重定向
proc = subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
stdout, stderr = proc.communicate(input='Hello from stdin')
print("从cat命令接收的输出:", stdout)

# 解释说明:
# 1. subprocess.run() 是 Python 3.5 引入的一个便捷函数,用于执行外部命令并等待其完成。
# 2. subprocess.Popen() 提供了更底层的接口,可以与子进程进行交互(例如发送输入、读取输出等)。
# 3. 使用 `capture_output=True` 和 `text=True` 可以方便地捕获和处理命令的输出,并将输出作为字符串处理。
# 4. `check=True` 参数会使命令执行失败时抛出 CalledProcessError 异常,便于错误处理。
# 5. `communicate()` 方法用于与子进程进行通信,可以通过 stdin 发送输入,通过 stdout 和 stderr 获取输出。

上一篇:sqrt在python中的含义

下一篇:python不等号

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站