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

用 Python 编写插件

 2010-09-22 11:14:14 来源:WEB开发网   
核心提示: 清单 3. 插件示例#!/usr/bin/env python# encoding: utf-8"""prints path, name, ext, plugin"""def plugin(rec, verbose=True):&

清单 3. 插件示例

#!/usr/bin/env python
# encoding: utf-8
"""
prints path, name, ext, plugin
"""
def plugin(rec, verbose=True):
  """Moves matched files to tmp directory"""
  path = rec["path"]
  filename = rec["filename"]
  ext = rec["ext"]
  print "%s | %s | %s" % (path, filename, ext)

这个插件非常简单。它有一个 rec 参数,这个参数是 pathtool 模块生成的词典。这个词典包含以下 API:

{"path": path, "filename": file, "ext": ext, "size": size,
"unique_id": unique_id, "mtime": mtime, "ctime": ctime}

在这个示例中,每当调用它时,使用词典的键输出特定文件对象的值。插件作者可以编写许多更有用的动作,比如对文件进行转换、重命名、存档等等。

结束语

本文介绍了一个非常简单的插件体系结构,可以通过它用 Python 扩展命令行工具。但是,应该注意几点。首先,可以通过 easy_install 使用一个更高级的插件系统(参见参考资料)。这个插件系统允许用户创建 “入口点” 来为工具定义插件。第二,我们的命令行工具只允许一个 “动作” 插件。可以修改这个命令行工具,让它能够接受数量不限的 “链式” 回调动作,这留给读者作为练习。

关于创建链式插件还有一个问题:设计必须考虑到使用的 API 的性质。在我们的示例中,以生成器作为基础。为了让这个工具能够把插件 “链接” 在一起,各个插件必须完成本身的工作,然后生成词典记录。我希望本文能够鼓励您为命令行工具编写自己的插件。

上一页  1 2 3 4 5 

Tags:Python 编写 插件

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