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 编写 插件

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