解析.ipynb文件,将base64格式数据转换为图片

2021-04-18  本文已影响0人  星光下的胖子

每个.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---")
上一篇下一篇

猜你喜欢

热点阅读