Python中执行系统命令常见的几种方法--转载

Python中执行系统命令常见的几种方法

Python中执行系统命令常见的几种方法有:

(1)os.system

  1. # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息
  2. # 如果再命令行下执行,结果直接打印出来

例如:

  1. >>> import os
  2. >>> os.system(‘ls‘)
  3. chk_err_log.py CmdTool.log  install_log.txt  install_zabbix.sh  manage_deploy.sh  MegaSAS.log
  4. (2)os.popen
  5. #该方法不但执行命令还返回执行后的信息对象
  6. #好处在于:将返回的结果赋于一变量,便于程序的处理。

例如:

  1. >>> import os
  2. >>>tmp = os.popen(‘ls *.sh‘).readlines()
  3. >>>tmp
  4. [‘install_zabbix.sh\n‘, ‘manage_deploy.sh\n‘, ‘mysql_setup.sh\n‘, ‘python_manage_deploy.sh\n‘, ‘setup.sh\n‘]

(3)使用模块subprocess

使用方法:

  1. >>> import subprocess
  2. >>> subprocess.call (["cmd", "arg1", "arg2"],shell=True)

好处在于:运用对线程的控制和监控,将返回的结果赋于一变量,便于程序的处理。

如获取返回和输出:

  1. import subprocess
  2. p = subprocess.Popen(‘ls *.sh‘, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
  3. print p.stdout.readlines()
  4. for line in p.stdout.readlines():
  5. print line,
  6. retval = p.wait()

(4) 使用模块commands模块

常用的主要有两个方法:getoutput和getstatusoutput

  1. >>> import commands
  2. >>> commands.getoutput(‘ls *.sh‘)
  3. ‘install_zabbix.sh\nmanage_deploy.sh\nmysql_setup.sh\npython_manage_deploy.sh\nsetup.sh‘
  4. >>> commands.getstatusoutput(‘ls *.sh‘)
  5. (0, ‘install_zabbix.sh\nmanage_deploy.sh\nmysql_setup.sh\npython_manage_deploy.sh\nsetup.sh‘)

注意:当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess,如果使用os.popen则会出现错误。

时间: 2024-11-04 13:16:54

Python中执行系统命令常见的几种方法--转载的相关文章

Python中执行系统命令常见的几种方法

(1) os.system 这个方法是直接调用标准C的system() 函数,仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息. import os os.system('cat /proc/cupinfo') (2) os.popen 该方法不但执行命令还返回执行后的信息对象,是通过一个管道文件将结果返回. output = os.popen('cat /proc/cpuinfo') print output.read() (3)使用模块commands模块 import comm

在 Ruby 中执行 Shell 命令的 6 种方法

我们时常会与操作系统交互或在 Ruby 中执行 Shell 命令.Ruby为我们提供了完成该任务的诸多方法. Exec Kernel#exec 通过执行给定的命令来替换当前进程,例如: $ irb >> exec 'echo "hello $HOSTNAME"' hello codefun $ 注意 exec 利用 echo 命令替换了 irb 进程,然后退出.因为 Ruby 实际上结束了该方法,所以只能有限使用.该方法的缺点是,你无法从 Ruby 脚本中知道命令是执行成功

Linux中执行shell脚本的4种方法

这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下. bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/root/bin目录中并已有执行权限(添加权限的方法:chmod +x hello.sh). 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: ./ 的意思是说在当前的工作目录下执行hello.sh.如果不加上

PDO中执行SQL语句的三种方法

在PDO中,我们可以使用三种方式来执行SQL语句,分别是 exec()方法,query方法,以及预处理语句prepare()和execute()方法~大理石构件来图加工 在上一篇文章<使用PDO构造函数连接数据库及DSN详解>中,我们介绍了如何使用构造函数连接数据库和DSN的详解,那么我们这篇文章跟大家介绍在PDO中执行SQL语句的三种方式,下面我们将一一介绍! 第一种方法:exec()方法 exec()方法返回执行SQL 语句后受影响的行数,其语法格式如下: 1 int PDO::exec(

Linux中执行shell脚本的4种方法总结

bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应找到不到hello.sh的错误信息.因为目前的工作目录(/data/shell)可能不在

Python 中格式化字符串 % 和 format 两种方法之间的区别

Python2.6引入了 format 格式化字符串的方法,现在格式化字符串有两种方法,就是 % 和 format ,具体这两种方法有什么区别呢?请看以下解析. # 定义一个坐标值 c = (250, 250) # 使用%来格式化 s1 = "敌人坐标:%s" % c 上面的代码很明显会抛出一个如下的TypeError: TypeError: not all arguments converted during string formatting 像这类格式化的需求我们需要写成下面丑陋

Python中给List添加元素的4种方法

https://blog.csdn.net/hanshanyeyu/article/details/78839266 List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作). 在Python中,向List添加元素,方法有如下4种方法(append(),extend(),insert(), +加号) 1. append() 追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型,被追加的元素在Lis

python中删除某个元素的3种方法

python中关于删除list中的某个元素,一般有三种方法:remove.pop.del 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除举例说明: >>> str=[1,2,3,4,5,2,6] >>> str.remove(2) >>> str [1, 3, 4, 5, 2, 6] 2.pop: 删除单个或多个元素,按位删除(根据索引删除) ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合

【转】Python中执行cmd的三种方式

原文链接:http://blog.csdn.net/menglei8625/article/details/7494094 目前我使用到的python中执行cmd的方式有三种: 1. 使用os.system("cmd") 这是最简单的一种方法,特点是执行的时候程序会打出cmd在linux上执行的信息.使用前需要import os. [python] view plaincopyprint? os.system("ls") 2. 使用Popen模块产生新的proces