WEB开发网
开发学院软件开发Python 用 Python 编写插件 阅读

用 Python 编写插件

 2010-09-22 11:14:14 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 简介在我以前撰写的一篇 IBM developerWorks 文章 中,介绍了如何用 Python 创建命令行工具,用 Python 编写插件,本文将创建插件来扩展这些命令行工具,从而把它们提高到更高水平,路径的默认回调函数仅仅输出文件名,开发人员只需要执行 easy_install

本文示例源代码或素材下载

简介

在我以前撰写的一篇 IBM developerWorks 文章 中,介绍了如何用 Python 创建命令行工具。本文将创建插件来扩展这些命令行工具,从而把它们提高到更高水平。插件和命令行工具都提供了扩展现有代码功能的简便方法。它们结合在一起可以形成非常强大的工具。

为了开始编写插件,我们要使用我编写的开放源码 Python 包 pathtool,这个库使用生成器操作文件系统并产生一个文件对象。这个库允许开发人员编写自己的过滤器来扩展它,过滤器对文件对象做一些处理,然后返回结果。

实际的 Python 模块代码比较长,不适合在本文中给出,所以只介绍开发人员实际使用的 API 片段:

清单 1. pathtool API

def path(fullpath, pattern="*", action=(lambda rec: print_rec(rec))):
  """This takes a path, a shell pattern, and an action callback
  This function uses the slower pathattr function which calculates checksums
  """
  for rec in pathattr(fullpath):
    for new_record in match(pattern, rec): #applies filter
      action(new_record) #Applies lambda callback to generator object
   

看一下这个示例,可以看出这个路径函数有一个必需的路径位置参数,还有一个可选的模式关键字参数和一个可选的动作关键字参数(称为 lambda 回调函数)。路径的默认回调函数仅仅输出文件名。开发人员只需要执行 easy_install 命令。关于使用 easy_install 命令的信息参见 参考资料。然后执行以下命令导入这个模块并调用函数:

   from pathtool import path
   path("/tmp", pattern="*.mp3", action=(lambda rec: print_rec(rec)))

1 2 3 4 5  下一页

Tags:Python 编写 插件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接