python中执行shell命令

python中执行shell命令原文出处 https blog 51cto com zhou123 这里介绍一下 python 执行 shell 命令的四种方法 1 os 模块中的 os system 这个函数来执行 shell 命令 gt gt gt os system ls anaconda ks cfginstall loginstall log syslogsend sms servic

1、os模块中的os.system()这个函数来执行shell命令

>>> os.system('ls') anaconda-ks.cfg install.log install.log.syslog send_sms_service.py sms.py 0 

注,这个方法得不到shell命令的输出。

2、popen()#这个方法能得到命令执行后的结果是一个字符串,要自行处理才能得到想要的信息。

>>> import os >>> str = os.popen("ls").read() >>> a = str.split("\n") >>> for b in a: print b 

这样得到的结果与第一个方法是一样的。

3、commands模块#可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位

import commands a,b = commands.getstatusoutput('ls') 
>>> import commands >>> a,b = commands.getstatusoutput('ls') >>> print a 0 >>> print b anaconda-ks.cfg install.log install.log.syslog 

commands.getstatusoutput(cmd)返回(status,output)

commands.getoutput(cmd)只返回输出结果

commands.getstatus(file)返回ls -ld file 的执行结果字符串,调用了getoutput,不建议使用这个方法。

4、subprocess模块

使用subprocess模块可以创建新的进程,可以与新建进程的输入/输出/错误管道连通,并可以获得新建进程执行的返回状态。使用subprocess模块的目的是替代os.system()、os.popen*()、commands.*等旧的函数或模块。

import subprocess 

1、subprocess.call(command, shell=True)

#会直接打印出结果。

2、subprocess.Popen(command, shell=True) 也可以是subprocess.Popen(command, stdout=subprocess.PIPE, shell=True) 这样就可以输出结果了。

如果command不是一个可执行文件,shell=True是不可省略的。

shell=True意思是shell下执行command

这四种方法都可以执行shell命令。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230390.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 高通 linux_linux驱动开发教程

    高通 linux_linux驱动开发教程笔记:调试步骤:1.BLSPcheck:主要确认GPIO功能和BLSP通道2.pinctrl文件配置3.平台设备树文件配置4.时钟文件修改5.添加从设备:1 设备树注册方法2 设备数节点创建一、I2C配置1.根据原理图,查找相关的i2c引脚对应的GPIO值,以GPIO10作为I2C_SDA,GPIO11作为I2C_SCL为例。2.根据MSM8937DEV

    2022年10月8日
    2
  • DVP,LVDS和MIPI「建议收藏」

    DVP,LVDS和MIPI「建议收藏」Mipi接口和LVDS接口区别主要区别:1.LVDS接口只用于传输视频数据,MIPIDSI不仅能够传输视频数据,还能传输控制指令;2.LVDS接口主要是将RGBTTL信号按照SPWG/JEIDA格式转换成LVDS信号进行传输,MIPIDSI接口则按照特定的握手顺序和指令规则传输屏幕控制所需的视频数据和控制数据。液晶屏有RGBTTL、LVDS、MIPIDSI接口…

    2022年5月4日
    171
  • ci框架子类继承父类时,报错Fatal error: Class ‘BaseController‘ not found in C:\xampp\htdocs「建议收藏」

    ci框架子类继承父类时,报错Fatal error: Class ‘BaseController‘ not found in C:\xampp\htdocs

    2022年2月18日
    49
  • py2exe用法_py import

    py2exe用法_py import使用pyinstaller,真是受够了,各种bug,各种莫名其妙的情况,也是够了使用py2exe,学习的时候麻烦,但是打包时候真的太方便了安装py2exe,网址http://www.py2exe.org/选择对应的版本下载;撰写setup.py文件`#–coding:utf-8–importpy2exefromdistutils.coreimportsetupsetu

    2025年10月21日
    6
  • C语言 字符串分割

    C语言 字符串分割C语言字符串分割一、简述记–字符串分割,strtok()函数的使用例子、自己实现split()函数。二、例子代码#include<stdio.h>#include<string.h>/**函数:split*描述:按指定分隔符分割字符串*参数:* str:要分割的字符串* strLen:要分割…

    2022年6月9日
    28
  • keil注册机激活的方法

    keil注册机激活的方法一次用注册机产生密码,在license里可能不可以激活。第一次运行一定要记住,要以管理员的身份运行mdk。以管理员的身份运行,注册成功。记录一下

    2022年6月6日
    82

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号