python 利用python的subprocess模块执行外部命令,获取返回值

本文介绍如何使用Python的subprocess模块执行DOS命令,并捕获标准输出和错误输出。通过示例代码展示了如何执行外部命令,如'ping www.baidu.com',并打印出返回的输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时执行dos命令需要保存返回值

需要导入库subprocess

import subprocess

p = subprocess.Popen('ping www.baidu.com', shell=True, stdout=subprocess.PIPE) out, err = p.communicate() print out.splitlines()[24:27] for line in out.splitlines(): print line

splitlines 是个列表

可以切片操作

完整代码:

# 利用python的subprocess模块执行外部命令, 并捕获stdout, stderr的输出:
# Python代码
import subprocess


# print ’popen3:’

def external_cmd(cmd, msg_in=''):
    try:
        proc = subprocess.Popen(cmd,
                                shell=True,
                                stdin=subprocess.PIPE,
                                stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE,
                                )
        stdout_value, stderr_value = proc.communicate(msg_in)
        return stdout_value, stderr_value
    except ValueError as err:
        # log("ValueError: %s" % err)
        return None, None
    except IOError as err:
        # log("IOError: %s" % err)
        return None, None


if __name__ == '__main__':
    stdout_val, stderr_val = external_cmd('ls -l')
    print 'Standard Output: %s' % stdout_val
    print 'Standard Error: %s' % stderr_val

输出:

Standard Output: 
Standard Error: 'ls' 不是内部或外部命令,也不是可运行的程序
或批处理文件。


Process finished with exit code 0

部分内容来自网络

 

转载于:https://www.cnblogs.com/monogem/p/11362496.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值