码迷,mamicode.com
首页 > 编程语言 > 详细

使用Python执行系统命令方法有哪些?

时间:2018-04-09 21:05:38      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:Python学习   Python培训   Python全栈   

使用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层


使用Python执行系统命令方法有哪些?

标签:Python学习   Python培训   Python全栈   

原文地址:http://blog.51cto.com/13543490/2096217

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!