关闭

python中如何调用shell 中OS.SYSTEM等方法

标签: python
2141人阅读 评论(0) 收藏 举报
分类:
python调用shell命令的方法有许多
1.1 os.system(command)
在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。
1.2 os.popen(command,mode)
打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。
1.3 commands.getstatusoutput(command)
  使用os.popen()函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;}2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。
2.1 subprocess.call(["some_command","some_argument","another_argument_or_path"])
subprocess.call(command,shell=True)
2.2 subprocess.Popen(command,shell=True)
如果command不是一个可执行文件,shell=True不可省。
使用subprocess模块可以创建新的进程,可以与新建进程的输入/输出/错误管道连通,并可以获得新建进程执行的返回状态。使用subprocess模块的目的是替代os.system()、os.popen*()、commands.*等旧的函数或模块。
  最简单的方法是使用classsubprocess.Popen(command,shell=True)。Popen类有Popen.stdin,Popen.stdout,Popen.stderr三个有用的属性,可以实现与子进程的通信。
将调用shell的结果赋值给python变量
handle =subprocess.Popen(command, shell=True,stdout=subprocess.PIPE)
printhandle.communicate()[0]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在Python/wxPython环境下,执行外部命令或者说在Python程序中启动另一个程序的方法一般有这么几个:
1、os.system(command)
2、wx.Execute(command,syn=wx.EXEC_ASYNC, callback=None)
若置syn为wx.EXEC_ASYNC则wx.Excute函数立即返回,若syn=wx.EXEC_SYNC则等待调用的程序结束后再返回。
callback是一个wx.Process变量,如果callback不为None且syn=wx.EXEC_ASYNC,则程序结束后将调用wx.Process.OnTerminate()函数。
os.system()和wx.Execute()都利用系统的shell,执行时会出现shell窗口。如在Windows下会弹出控制台窗口,不美观。下面的两种方法则没有这个缺点。
3、classsubprocess.Popen
最简单的用法是:
import subprocess
subprocess.Popen(command,shell=True)
如果command不是一个可执行文件,shell=True不可省。
前面三个方法只能用于执行程序和打开文件,不能处理URL,打开URL地址可用webbrowser模块提供的功能。
4、webbrowser.open(url)
调用系统缺省浏览器打开URL地址,如webbrowser.open('http://www.google.com'),也可以利用
webbrowser.open('h:\python.zip')来执行程序。这样可以不必区分是文件名还是URL,不知道在Linux下是否可行。
以上在Windows2000,Python2.4a1,wxPython2.5.1运行。
modify:还有一种方式:subprocess.call(*args,**kwargs)

0
0
查看评论

Python 执行shell命令:system

一,os.system(cmd) 通过此函数执行Linux命令(或shell脚本),返回值为十进制数(对应一个 16 位的二进制数)。低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码 此函数的返回值与Linux命令返回值之间的转换关系: 函数返回值(十进制)转换为16位二进制数,...
  • Thinking_boy1992
  • Thinking_boy1992
  • 2017-04-19 20:11
  • 796

Python os.system执行多条语句

今天遇到要在os.system中连续执行多条语句的情况,语句如下: cmd1="cd /d %s" % os.path.dirname(file_path) cmd2="python setup.py install"  如果分为两次执...
  • fengqingting2
  • fengqingting2
  • 2014-12-15 09:35
  • 8368

实用的 Python —— os.system() 在 python 语句中执行 dos 命令

import os (1)os.getcwd():首先查看当前工作目录 (2)os.chdir(”):切换文件夹 os.syetem(”) 本质上这里不是讲的不是 python,而是 dos 命令,试提供几个如下:(1)显示当前文件夹下的全部目录和文件夹os.system('dir...
  • lanchunhui
  • lanchunhui
  • 2016-04-28 18:25
  • 7644

python执行系统命令的方法os.system()

在python中,用于执行系统命令的模块与方法不止一种,这里分享几个常见的Python中执行系统命令的方法:   os.system   # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息   如果再命令行下执行,结果直接打印出来   例如:   代码示例...
  • xiaoxinyu316
  • xiaoxinyu316
  • 2015-07-01 23:01
  • 4072

python os.system("cd")

最近写了个脚本,阔以一键创建目录,并且下载代码。 这里用到了python的os模块。该模块可以操作系统命令,并且适配windows和Linux。os.system(‘mkdir hello’) 则可以创建一个hello的文件夹。 但是当程序运行到: os.system(‘cd hello’)...
  • qq_25467523
  • qq_25467523
  • 2017-09-05 22:54
  • 1069

python调用Shell脚本:os.system(cmd)或os.popen(cmd)的区别

两者的区别是: os.system(cmd)的返回值只会有0(成功),1,2  os.popen(cmd)会吧执行的cmd的输出作为值返回。   python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状...
  • windone0109
  • windone0109
  • 2013-05-07 16:31
  • 84701

python调用Shell脚本:os.system(cmd)或os.popen(cmd)

转载:http://www.cnblogs.com/end/archive/2012/09/06/2673942.html python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容...
  • jcxch
  • jcxch
  • 2016-01-07 11:21
  • 317

python使用os.system执行Linux shell命令

使用os.system执行Linux shell 命令
  • zhouzhenhe2008
  • zhouzhenhe2008
  • 2015-12-27 14:03
  • 1066

python-模块间的导入与os.system('xxx')的shell命令执行

在一个大模块中导入一个小的特定子模块,如在sys大模块中导入sys.path的子模块,其他的sys子模块无法使用 root@kali:~# python Python 2.7.3 (default, Mar 14 2014, 11:57:14) [GCC 4.7.2] on linux2 Typ...
  • xwbk12
  • xwbk12
  • 2017-05-16 22:23
  • 376

python中如何调用shell 中OS.SYSTEM等方法

python调用shell命令的方法有许多 1.1  os.system(command)      在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上是使用C标准库函数system()实现的。这个...
  • gray13
  • gray13
  • 2011-12-06 02:06
  • 16037
    个人资料
    • 访问:193866次
    • 积分:2906
    • 等级:
    • 排名:第14379名
    • 原创:66篇
    • 转载:118篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论