Python 执行Shell命令

Python 执行Shell命令

实际应用中可能需要在程序中执行一些shell命令,例如在Pycharm开发环境中,提交代码至github。我们知道传输文件是通过git命令,其一般在命令行中执行,所以Pycharm后台通过执行shell进行实现。本文通过示例学习Python执行基本shell命令方法。

1. Python os.system() 函数

os.system()函数可以执行系统命令,官方文档描述如下:
通过调用标准C函数system()实现,对应限制也一样。
然而命令有任何输出,会发送至解释器标准输出流,因此不建议使用。
下面示例获取git对应版本,使用命令git --version

import os

cmd = "git --version"

returned_value = os.system(cmd)  # returns the exit code in unix
print('returned value:', returned_value)

下面输出是在安装了git的ubuntu上:

git version 2.14.2
returned value: 0

注意我们没有将git版本命令输出打印到控制台,而是将其打印出来,因为控制台是这里的标准输出流,但实际输出没有获取到版本对应的值。

2. Python subprocess.call() 函数

前节中我们使用os.system()函数,本节我们看看subprocess模块的call函数执行系统命令。下面示例重写了上面的代码:

import subprocess

cmd = "git --version"

returned_value = subprocess.call(cmd, shell=True)  # returns the exit code in unix
print('returned value:', returned_value)

执行后输出结果与上节示例一样。

3. Python subprocess.check_output()函数

我们看前面两个方法不能操作这些命令的执行输出结果。本节介绍subprocess.check_output()函数,其可以保存输出结果到变量中。请看示例:

import subprocess

cmd = "date"

# returns output as byte string
returned_output = subprocess.check_output(cmd)

# using decode() function to convert byte string to string
print('Current date is:', returned_output.decode("utf-8"))

执行输出结果如下:

Sun Sep 29 18:31:57 CST 2019

4. 总结

我们一共介绍了三种方式执行shell命令,但只有subprocess.check_output()函数可以获取输出结果。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值