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)
上一篇 2026年2月26日 上午11:01
下一篇 2026年2月26日 上午11:22


相关推荐

  • MySQL恢复备份读书笔记

    MySQL恢复备份读书笔记

    2021年8月29日
    75
  • GB28181协议–报警

    GB28181协议–报警1 简介根据 GBT28181 2016 公共安全视频监控联网系统信息传输 交换 控制技术要求 9 4 节的 报警事件通知和分发基本要求 描述 发生报警事件时 源设备应将报警信息发送给 SIP 服务器 SIP 服务器接收到报警事件后 将报警信息分发给目标设备 报警事件通知和分发使用 IETFRFC3428 中定义的方法 Message 传送报警信息 源设备包括 SIP 设备 网关 SIP 客户端 联网系统或者综合接处警系统以及卡口系统等 目标设备包括具有接警功能的 SIP 客户端 联网系统或

    2026年3月16日
    3
  • 360发布“安全龙虾” 装虾时间从6小时缩短至10分钟

    360发布“安全龙虾” 装虾时间从6小时缩短至10分钟

    2026年3月15日
    3
  • ubuntu设置远程桌面_ubuntu安装虚拟显示器

    ubuntu设置远程桌面_ubuntu安装虚拟显示器IP变化的所以用向日葵连接,设置开机自动启动如果ubuntu还没有安装桌面那么先安装桌面在安装过程中选择lightdm,如图所示:如果本来就有图形桌面那么需要安装虚拟显示器因为如果将HDMI或者其他与物理显示器相连的线拔掉,即想节省一块显示器,那么就会发现,向日葵虽然可以远程连接到桌面,但是却控制不了,因此需要虚拟显示器。确保ssh可以远程连接后再往下进行。安装虚拟桌面:然后配置虚拟显示器,创建这个文件【/usr/share/X11/xorg.conf.d/xorg.conf】内容如下:

    2022年8月21日
    7
  • 模运算法则_模运算例题详解

    模运算法则_模运算例题详解模运算与基本四则运算有些相似,但是除法例外。其规则如下:(a+b)%p=(a%p+b%p)%p (a-b)%p=(a%p-b%p)%

    2022年8月4日
    7
  • 字符流与字节流的区别

    字符流与字节流的区别字符流与字节流的区别 尊重劳动成果 转载请注明出处 https blog csdn net cynhafa article details 陈江玉的博客 字节流与和字符流的使用非常相似 两者除了操作代码上的不同之外 是否还有其他的不同呢 实际上字节流在操作时本身不会用到缓冲区 内存 是文件本身直接操作的 而字符流在操作时使用了缓冲区 通过缓冲区再操作文件 如图 12 6 所示

    2026年3月19日
    2

发表回复

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

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