python调用shell的方法 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    1.1 os.system(command)

    在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态,

python调用shell的方法

。这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。

    1.2 os.popen(command,mode)

    打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是'r')。如果mode为'r',可以使用此函数的返回值调用read()来获取command命令的执行结果。

    1.3 commands.getstatusoutput(command)

    使用os. getstatusoutput ()函数执行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.*等旧的函数或模块。

    最简单的方法是使用class subprocess.Popen(command,shell=True)。Popen类有Popen.stdin,Popen.stdout,Popen.stderr三个有用的属性,可以实现与子进程的通信。

    将调用shell的结果赋值给python变量

    复制代码代码如下:

    handle = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)

    print handle.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、class subprocess.Popen

    最简单的用法是:

    复制代码代码如下:

    import subprocess

    subprocess.Popen(command, shell=True)

    如果command不是一个可执行文件,shell=True不可省。

    前面三个方法只能用于执行程序和打开文件,不能处理URL,打开URL地址可用webbrowser模块提供的功能,

电脑资料

python调用shell的方法》(https://www.unjs.com)。

    4、webbrowser.open(url)

    调用系统缺省浏览器打开URL地址,如 webbrowser.open('http://www.jb51.net'),也可以利用

    webbrowser.open('h:\python.zip')来执行程序。这样可以不必区分是文件名还是URL,不知道在Linux下是否可行。

    以上在Windows2000,Python2.4a1,wxPython 2.5.1运行。

    modify:还有一种方式:subprocess.call(*args, **kwargs)

   

您可能感兴趣的文章:

php使用exec shell命令注入的方法讲解

Android执行shell命令详解

解析如何在C语言中调用shell命令的实现方法

神奇的shell命令行输入与输出功能介绍

用shell命令读取与输出数据的代码

linux shell命令执行顺序的控制方法

合并一个文件夹下多个文件内容的单行shell命令

linux shell命令的常用快捷键

python和shell变量互相传递的几种方法

    QQ空间 搜狐微博 人人网 开心网 百度搜藏更多

    Tags:shell命令

    复制链接收藏本文打印本文关闭本文返回首页

    上一篇:python和shell变量互相传递的几种方法

    下一篇:windows下wxPython开发环境安装与配置方法

   

相关文章

2012-05-05ssh批量登录并执行命令的python实现代码

2013-11-11haskell实现多线程服务器实例代码

2009-02-02wxpython 学习笔记 第一天

2009-06-06python getopt 参数处理小示例

2014-04-04使用python解析xml成对应的html示例分享

2014-06-06python网络编程学习笔记(三):socket网络服务器

2014-04-04python使用ctypes模块调用windowsapi获取系统版本示例

2014-04-04python生成随机验证码(中文验证码)示例

2014-04-04Python 时间操作例子和时间格式化参数小结

2014-01-01python回调函数的使用方法

   

文章评论

   

最 近 更 新

   

python实现ftp客户端示例分享

python 实现插入排序算法

Python中文编码那些事

让python json encode datetime类型

Python Trie树实现字典排序

python列表与元组详解实例

二种python发送邮件实例讲解(python发邮件

python去掉字符串中重复字符的方法

python标准日志模块logging的使用方法

python翻译软件实现代码(使用google api完

   

热 点 排 行

   

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

最新文章