python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后

者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。

现假定有一个shell脚本test.sh:

#!/bin/bash

1. echo "hello world!"

2. exit 3

os.system(cmd):

该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的

退出状态码,即脚本中“exit 1”的代码执行后,os.system函数返回值的高位数则是1,如果低位数是0的情

况下,则函数的返回值是0×100,换算为10进制得到256。

如果我们需要获得os.system的正确返回值,那使用位移运算可以还原返回值:

1. >>>  n = os.system(test.sh)

2. >>> n >> 8

3. >>> 3

os.popen(cmd):

这种调用方式是通过管道的方式来实现,函数返回一个file-like的对象,里面的内容是脚本输出的内容(可

简单理解为echo输出的内容)。使用os.popen调用test.sh的情况:
python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后

者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。

明显地,像调用”ls”这样的shell命令,应该使用popen的方法来获得内容

python os.system os.popen 区别相关推荐

  1. python os.system 512_python os.system os.popen 区别

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或者 ...

  2. Python3.X subprocess、os.system/os.popen/os.spawn*、commands:与系统进行交互,如测试时常用的adb命令

    如需转载请注明出处. win10 64位.Python 3.6.3.Sublime Text 3. 一.首先明白一些概念: 1.操作系统(OS,operating system). 是管理和控制计算机 ...

  3. python执行系统命令的方法_python执行系统命令的方法 :os.system(),subprocess.popen(),command...

    最近接触到os.system(),subprocess.popen()和commands来执行系统命令,从网上搜索到许多,现整理如下. 1. 使用os.system("cmd") ...

  4. os.system() 和 os.popen()

    1.os.popen(command[, mode[, bufsize]]) os.system(command) 2.os.popen() 功能强于os.system() , os.popen() ...

  5. python中的subprocess.Popen()使用详解---以及注意的问题(死锁)

    从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值. subprocess意在替代其他几个老的模块或者函数 ...

  6. 模块使用:time、datetime、calendar、sys、os、os.path、normcase和normapath、random、json、pickle...

    ## time:时间 时间戳(timestamp):time.time() 延迟线程的运行:time.sleep(secs) (指定时间戳下的)当前时区时间:time.localtime([secs] ...

  7. python中的subprocess.Popen()使用

    从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值. subprocess意在替代其他几个老的模块或者函数 ...

  8. python中os.system、os.popen、subprocess.popen的区别

    最近项目中需要在python中执行shell脚本,以下解释使用os.system. os.popen和subprocess.popen的区别: 1.os.system 该函数返回命令执行结果的返回值, ...

  9. Python面试高频问题: os.system()和os.popen()的区别

    os.system()和os.popen()概述 大家搞python与操作系统交互时,必须掌握的两个方法就是os.system()和os.popen(),也是在相关技术领域面试中必问的题目!本文就对这 ...

最新文章

  1. 存在描述所有生命的方程吗?
  2. android开发 BaseAdapter中getView()里的3个参数是什么意思
  3. MFC多线程同步互斥
  4. 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )
  5. 全球及中国陶瓷脐轮行业投资份额及需求前景调研报告2021-2027年版
  6. PyTorch 官方教程发布,限时免费开放!
  7. hdu 527 Necklace
  8. 服务器虚拟化怎么使用,服务器使用中的误区及建议 服务器虚拟化安装步骤
  9. 设单链表中存放n个字符,试设计一个算法,使用栈推断该字符串是否中心对称...
  10. 教你如何快速入门python_如何快速入门python
  11. python系统编程模块_Python系统进程管理模块
  12. iPhone 12包装盒设计曝光,没充电器没耳机实锤?
  13. zabbix监控kafka模板_一篇运维老司机的大数据平台监控宝典
  14. 服务器系统上1068错误,一个backup exec 2012的真实故障案例,服务无法启动1068
  15. C语言报错:「error」Id returned 1 exit status
  16. 自定义监控项及告警升级
  17. 介绍中国传统节日的网页html,介绍中国传统节日
  18. [elasticsearch笔记] Query DSL - percolate
  19. POJ 2210 Metric Time【日期】
  20. 心系冬奥 翰墨传情 |当代书画名家为奥运加油书画推介展【宋碧梅篇】

热门文章

  1. AgriPest:A Large-Scale Domain-Specific Benchmark Dataset for Practical Agricultural Pest Detection
  2. 个人感悟:我的学习嵌入式linux的方法
  3. 替人出头的大哥淘宝网投诉未果,当事人蚂蚁OceanBase会出来吗?
  4. 2019暑假起集训实录
  5. java 线型_java使用jfreechart绘制线型统计图
  6. 移动卡(非全球通)欠费停机3个月后自动销号无影响
  7. 微信小程序canvas 2d 绘制图片与文字 导出图片
  8. Ngnix安装及配置
  9. 服务器宕机是什么原因
  10. 计算机办公软件应用三套题目,在线考试Office办公软件高级应用第三套试卷