Jupyter中使用snippets插件实现代码复用

Jupyter中使用snippets插件实现代码复用)

使用前提

  • 使用Jupyter botebook
  • 已经安装Jupyter notebook extensions 扩展插件
    关于安装extensions 扩展插件的教程很多,这里不进行过多介绍,成功安装后,打开notebook有Nbextensions选项卡
    Jupyter中使用snippets插件实现代码复用

步骤

  1. Nbextensions选项卡下找到名称为Snippets的插件,并打钩,注意,不是Snippets Menu;
    Jupyter中使用snippets插件实现代码复用
  2. 新建并打开一个python3文件,我们可以看到窗口多了一个Snippets的下拉框。

Jupyter中使用snippets插件实现代码复用 3. 将以下代码复制到notebook的单元格,并运行;

import json
path = get_ipython().getoutput('jupyter --data-dir')
path = "".join([path[0], r"/nbextensions/snippets/snippets.json"])
snips = {
    "name": "爬虫_requests",
    "code": [
        'def getHTMLText(url):',
            '\ttry:',
        '\t\tr = requests.get(url, timeout=30)',
        '\t\tr.raise_for_status()',
        '\t\tr.encoding = r.apparent_encoding',
        '\treturn r.text',
    '\texcept:'
        '\t\treturn ""'
    ]
}
fr = open(path, 'r', encoding='UTF-8')
mode = json.load(fr)
fr.close()
for i in range(0, len(mode['snippets'])):
    if mode['snippets'][i]['name'] == '爬虫_requests':
        del mode['snippets'][i]
        break
mode['snippets'].append(snips)
jsObj = json.dumps(mode)
with open(path, "w") as fw:
    fw.write(jsObj)
    fw.close()
  1. 关闭notebook,重新打开,打开任意文件,再次点开Snippets下拉框,我们发现多了一个爬虫_requests的选项,点击它,即插入了一段代码。
    Jupyter中使用snippets插件实现代码复用
  2. 事实上以上代码的功能就是:将我们需要复用的一段代码命名为爬虫_requests,并且添加到Snippets里面,我们下次需要用的时候,直接在下拉框找到,并且点击即可插入。

代码说明

Jupyter中使用snippets插件实现代码复用