我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python执行shell命令的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python执行shell命令的方法

os模块

os.system方式:

import os
os.system('top')
os.system('cat /proc/cpuinfo')

说明

  • 这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回。

  • 返回值是依赖于系统的,直接返回系统的调用返回值,所以windows和linux是不一样的。

  • 强调的一点是,不支持参数,不支持管道


os.open方式:

import os
output = os.popen('df')
print output.read()   #如果命令自身无报错,则返回正确的值

说明

  • popen方法通过p.read()获取终端输出,而且popen需要关闭close().

  • 当执行成功时,close()不返回任何值,失败时,close()返回系统返回值..

  • 可见它获取返回值的方式和os.system不同

  • 强调的一点是,不支持参数,不支持管道


commands模块

使用commands模块的getoutput方法,这种方法同popend的区别在于popen返回的是一个文件句柄,而本方法将外部程序的输出结果当作字符串返回,很多情况下用起来要更方便些。

主要方法:

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

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

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

a = commands.getoutput('ps -ef ')
b = commands.getstatusoutput('vmstat')


subprocess模块

说明

  • 使用subprocess模块能够创建新的进程。

  • 能够与新建进程的输入/输出/错误管道连通。

  • 并能够获得新建进程运行的返回状态。

  • 使用subprocess模块的目的是替代os.system()、os.popen()、commands.等旧的函数或模块。

subprocess.call(["some_command","some_argument","another_argument_or_path")

from subprocess import call
call(['ls','-l','/boot','/sys'])    #
call('ls -a /',shell=True)

subprocess.Popen(command,shell=True)

class subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, 
    preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False,
    startup_info=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=())

 subprocess.Popen类的实例的一些方法:

方法描述
Popen.poll()用于检查子进程是否已经执行结束, 没结束返回None, 结束后返回状态码
Popen.wait(timeout=None)等待子进程结束, 并返回状态码, 如果在timeout指定的秒数之后进程还没有结束, 将会抛出一个TimeoutExpired异常
Poen.communicate(input=None, timeout=None)该方法可用来与进程进行交互, 比如发送数据到stdin, 从stdout和stderr读取数据, 直到到达文件末尾
Popen.send_signal(signal)发送指定的信号给这个子进程
Popen.terminate()停止该子进程
Popen.kill()杀死该子进程


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python执行shell命令的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python执行shell命令的方法

os模块os.system方式:import osos.system('top')os.system('cat /proc/cpuinfo')说明这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回。返回值是依赖于系统的,直接返回系统的
2023-01-31

python 执行 shell命令 的几

os.system最近有个需求就是页面上执行shell命令,第一想到的就是os.systemos.system('cat /proc/cpuinfo')但是发现页面上打印的命令执行结果 0 或者 1,当然不满足需求了。 os.popen()
2023-01-31

python执行使用shell命令方法分享

1. os.system(shell_command) 直接在终端输出执行结果,返回执行状态0,1 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显
2022-06-04

python 之 shell命令执行

python中有几种常用的执行shell命令的模块1,os.system()2, os.popen()3,pexpect.run()下面介绍3个模块的差别1,os.system() 直接执行>>> os.system('ls /tmp')h
2023-01-31

python之执行shell命令

[root@s141 ~]# pythonPython 2.7.5 (default, Sep 15 2016, 22:37:39) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2Type 
2023-01-31

python中执行shell命令的几个方

最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 代码如下:os.system('cat /proc/cpuinfo')但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了。尝试第二种方案 os.pope
2023-01-31

python怎么执行shell命令

在Python中可以使用`os`模块中的`system`函数来执行Shell命令。以下是一个示例:```pythonimport os# 执行ls命令os.system('ls')# 执行pwd命令,并获取输出结果result = os.p
2023-09-27

Python 执行Shell 外部命令

1、os.system()此方法执行的外部程序,会将结果直接输出到标准输出。os.system的返回结果为执行shell 的 $? 值。因此请执行没有输出结果的程序时适合使用此方法。如touch 、rm 一个文件等。In [1]: impo
2023-01-31

linux下执行shell命令方法简介

linux下执行shell命令有两种方法在当前shell中执行shell命令在当前shell中产生一个subshell,在subshell中执行shell命令1.在当前shell中执行shell命令 主要就是在命令行中通过交互方式方式直接输
2022-06-04

Android中执行java命令的方法及java代码执行并解析shell命令

android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析。android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令。 那么在andro
2022-06-06

Spark-shell批量命令执行脚本的方法

批量执行spark-shell命令,并指定提交参数#!/bin/bashsource /etc/profileexec $SPARK_HOME/bin/spark-shell --queue tv --name spark-sql-
2022-06-04

linux shell命令执行顺序的控制方法

&&命令1 && 命令2:如果这个命令执行成功&&那么执行这个命令。[jb]/usr/xxxx/ytcclb>ls -l test.sql-rwxr--r-- 1 xxxx group 225 Nov 15 14:12 test.sql[j
2022-06-04

python执行系统命令的方法

做为系统工程师来说,经常会用到python脚本去调用一下系统命令,现把经常使用的集中调用方法总结如下:一,os.system(command)在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这个函数
2023-01-31

linux shell命令执行顺序控制方法

本篇内容主要讲解“linux shell命令执行顺序控制方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux shell命令执行顺序控制方法”吧!&&命令1 && 命令2:如果这个命令执
2023-06-09

hbase-shell批量命令执行脚本的方法

批量执行hbase shell 命令#!/bin/bash source /etc/profile exec $HBASE_HOME/bin/hbase shell <
2022-06-04

Linux命令行循环执行shell命令

目录linux命令行,循环执行shell命令死循环命令格式效果普通计数循环循环10次效果L编程inux shell循环命令 while死循环的用法Linux命令行,循环执行shell命令 死循环 命令格式 while true编程 ;do
2023-01-03

使用shell脚本执行hive、sqoop命令的方法

1、test.sh脚本内容如下:#!/bin/bash#CURR_DATE=`date +"%Y-%m-%d %H:%M:%S"`------>不能使用 v_sql="insert into origin_ennenergy_ene
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录