印象笔记转markdown

使用工具

evernote导出 git地址
evernote2md enex转md git地址

操作步骤

  • 调用 印象笔记获取token
  • 初始化数据库 evernote-backup init-db --backend china
  • 使用evernote-backup sync​ 触发数据同步
  • 将笔记从数据库中导出evernote-backup export output_dir/
  • 通过代码将enex转成md格式的笔记文件(tips:每一个.enex文件相当于一个目录)

代码

import subprocess
import os
# 换成自己的`evernote-backup` 导出目录
source = "D:/tool/back/evernote-backup/output_dir"
# 换成自己的markdown导出目录
target = "D:/tool/back/evernote-backup/markdown"


def run_command(command):
    """
    运行shell命令
    """
    try:
        # 使用check_output方法执行命令并获取输出
        output = subprocess.check_output(command, shell=True, stderr=subprocess.STDOUT, text=True)
    except subprocess.CalledProcessError as e:
        print(f"命令执行失败: {e.output}")
    except Exception as e:
        print(f"发生异常: {e}")

def traverse_directory(directory_path):
    """
    遍历指定目录及其子目录下的所有文件和子目录。
    :param directory_path: 目录路径
    """
    dir = []
    # 使用os.walk遍历目录
    for root, dirs, files in os.walk(directory_path):
        print(f"当前目录: {root}")
        for dir_name in dirs:
            print(f"\t目录:{dir_name}")
            dir.append(f'{dir_name}')
        for f in files:
            target = str(root).replace("output_dir", "markdown")
            targetDir = str(f).split(".")[0]
            command = f'D:/tool/back/evernote-backup/evernote2md.exe {root}/{f} {target}/"{targetDir}"/'
            print(command)
            run_command(command)
    return dir

dirArr = traverse_directory(source)