我是靠谱客的博主 彩色西牛,最近开发中收集的这篇文章主要介绍Jupyter notebook避免重复造轮子绝技之Snippets插件使用场景使用前提使用方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 使用场景
  • 使用前提
    • 添加增加轮子的功能
    • 添加删除轮子功能
  • 使用方法
    • 增加轮子方法
    • 删除轮子方法

使用场景

在日常程序的编写中,有很多重复的代码一直再重复,另外有时这类代码很难记忆,又必不可缺,每次使用都需要百度查找相关代码,在这里提供一种便利的方式,提高编写代码效率。

使用前提

  • 已有Jupyter botebook
  • 安装Jupyter notebook extensions 扩展插件
python -m pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user --skip-running-check

选择Nbextensions,添加Snippets扩展程序。
在这里插入图片描述
由于Snippets扩展程序要添加重复的代码块必须写代码,那能不能写一次代码一劳永逸呢?不错还真有,真是奇淫巧计啊,哈哈哈。

添加增加轮子的功能

#创建删除轮子
import json
#重复代码名字
name="增加轮子(默认覆盖)"
#重复代码内容
information=
'''
import json
#重复代码名字
name="解决中文无法显示"
#重复代码内容
information=\
'''
'''
path = get_ipython().getoutput('jupyter --data-dir')
path = "".join([path[0], r"/nbextensions/snippets/snippets.json"])
snips = {
"name": name,
"code": [
information
]
}
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'] == name:
del mode['snippets'][i]
break
mode['snippets'].append(snips)
jsObj = json.dumps(mode)
with open(path, "w") as fw:
fw.write(jsObj)
fw.close()
'''
path = get_ipython().getoutput('jupyter --data-dir')
path = "".join([path[0], r"/nbextensions/snippets/snippets.json"])
snips = {
"name": name,
"code": [
information
]
}
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'] == name:
del mode['snippets'][i]
break
mode['snippets'].append(snips)
jsObj = json.dumps(mode)
with open(path, "w") as fw:
fw.write(jsObj)
fw.close()

添加删除轮子功能

#创建新增轮子
import json
#重复代码名字
name="删除轮子"
#重复代码内容
information=
'''
path = get_ipython().getoutput('jupyter --data-dir')
path = "".join([path[0], r"/nbextensions/snippets/snippets.json"])
#批量删除列表
del_list=[""]
def del_Snippets():
fr = open(path, 'r', encoding='UTF-8')
mode = json.load(fr)
for index,i in enumerate(mode['snippets']):
if i['name'] in del_list:
print(f"正在删除{mode['snippets'][index]}")
del mode['snippets'][index]
jsObj = json.dumps(mode)
with open(path, "w") as fw:
fw.write(jsObj)
fw.close()
print("正在保存数据")
del_Snippets()
'''
path = get_ipython().getoutput('jupyter --data-dir')
path = "".join([path[0], r"/nbextensions/snippets/snippets.json"])
snips = {
"name": name,
"code": [
information
]
}
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'] == name:
del mode['snippets'][i]
break
mode['snippets'].append(snips)
jsObj = json.dumps(mode)
with open(path, "w") as fw:
fw.write(jsObj)
fw.close()

使用方法

增加轮子方法

在这里插入图片描述


import json
#重复代码名字
name="解决中文无法显示"
#重复代码内容
information=
'''
'''
path = get_ipython().getoutput('jupyter --data-dir')
path = "".join([path[0], r"/nbextensions/snippets/snippets.json"])
snips = {
"name": name,
"code": [
information
]
}
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'] == name:
del mode['snippets'][i]
break
mode['snippets'].append(snips)
jsObj = json.dumps(mode)
with open(path, "w") as fw:
fw.write(jsObj)
fw.close()

删除轮子方法

在这里插入图片描述

path = get_ipython().getoutput('jupyter --data-dir')
path = "".join([path[0], r"/nbextensions/snippets/snippets.json"])
#批量删除列表
del_list=[""]
def del_Snippets():
fr = open(path, 'r', encoding='UTF-8')
mode = json.load(fr)
for index,i in enumerate(mode['snippets']):
if i['name'] in del_list:
print(f"正在删除{mode['snippets'][index]}")
del mode['snippets'][index]
jsObj = json.dumps(mode)
with open(path, "w") as fw:
fw.write(jsObj)
fw.close()
print("正在保存数据")
del_Snippets()

在这里插入图片描述
添加成功。

最后

以上就是彩色西牛为你收集整理的Jupyter notebook避免重复造轮子绝技之Snippets插件使用场景使用前提使用方法的全部内容,希望文章能够帮你解决Jupyter notebook避免重复造轮子绝技之Snippets插件使用场景使用前提使用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部