设为首页 收藏本站
查看: 832|回复: 0

[经验分享] 使用Python执行系统命令方法有哪些?

[复制链接]

尚未签到

发表于 2018-8-11 10:41:50 | 显示全部楼层 |阅读模式
  使用Python执行系统命令方法有哪些?
  Python是一款操作简单的编程语言,内置丰富的库,能够很容易的实现强大的功能,在使用Python进行框架搭建时,往往需要用到Python执行系统命令,一些开发人员对此不熟悉,以下是具体的操作方法:
  1. os.system()
  这个方法直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取执行返回的信息。
  >>> import os
  >>> output = os.system('cat  /proc/cpuinfo')
  processor : 0
  vendor_id : AuthenticAMD
  cpu family : 21
  ... ...
  >>> output # doesn't capture output
  0
  2. os.popen()
  这个方法执行命令并返回执行后的信息对象,是通过一个管道文件将结果返回。
  >>> output = os.popen('cat /proc/cpuinfo')
  >>> output
  >>> print output.read()
  processor : 0
  vendor_id : AuthenticAMD
  cpu family : 21
  ... ...
  >>>
  3. commands模块
  >>> import commands
  >>> (status, output) = commands.getstatusoutput('cat  /proc/cpuinfo')
  >>> print output
  processor : 0
  vendor_id : AuthenticAMD
  cpu family : 21
  ... ...
  >>> print status
  0
  注意1:在类unix的系统下使用此方法返回的返回值(status)与脚本或命令执行之后的返回值不等,这是因为调用了os.wait()的缘故,具体原因就得去了解下系统wait()的实现了。需要正确的返回值(status),只需要对返回值进行右移8位操作就可以了。
  注意2:当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess。
  4. subprocess模块
  该模块是一个功能强大的子进程管理模块,是替换os.system, os.spawn*等方法的一个模块。
  >>> import subprocess
  >>> subprocess.Popen(["ls", "-l"]) #  python2.x doesn't capture output
  >>> subprocess.run(["ls", "-l"]) #  python3.x doesn't capture output
  >>> total 68
  drwxrwxr-x 3 xl xl 4096 Feb 8 05:00 com
  drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Desktop
  drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Documents
  drwxr-xr-x 2 xl xl 4096 Jan 21 07:44 Downloads
  ... ...
  >>>
  以上是列举的python执行系统命令的方法,如果需要这方面的操作,可以参考一下!

    报名咨询电话:18515368555
  老男孩官网咨询:http://www.oldboyedu.com/
  老男孩总部地址:北京市昌平区顺沙路八号院汇德商厦4层

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-550047-1-1.html 上篇帖子: python爬取百度图片代码 下篇帖子: python 文件MD5 SHA1校验计算
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表