每个.ipynb文件都是一个文本文件,它以JSON格式保存数据。
修改.ipynb文件的后缀名为.json,直接打开如下:
因此,通过解析json文件可获得base64格式的字符串,然后转换为图片即可。
代码实现如下:
import base64
import json
import os
ipynb = "./十大排序算法.ipynb" # 需要解析的.ipynb文件
path = './sorting_algorithm' # 图片保存目录
# 将base64格式数据转换为图片
def transform_base64_to_image(img_base64_str, img_name, path):
if not os.path.exists(path):
os.makedirs(path)
img_path = os.path.join(path, img_name)
with open(img_path, 'wb') as file:
file.write(base64.b64decode(img_base64_str))
print("---start---")
# 解析.ipynb文件,将base64格式数据转换为图片
with open(ipynb, "r") as file:
# 获取jupyter的单元列表
cells = json.load(file)['cells']
# 遍历每个单元cell,将所有base64格式数据转换为图片
for cell in cells: # <class 'dict'>
if 'attachments' in cell.keys():
attachment = cell['attachments'] # <class 'dict'>
for img_name in list(attachment):
print(img_name)
img_dict = attachment[img_name]
img_key = list(img_dict)[0]
img_base64_str = img_dict[img_key]
# 转为图片
transform_base64_to_image(img_base64_str, img_name, path)
print("---end---")
网友评论