为知笔记为知笔记技巧

MyBase 7.x笔记迁移到为知笔记脚本

2018-08-18  本文已影响6人  祗談風月

前言

原理

步骤

  1. mybase选中所有要导出的目录,菜单栏选择导出->导出磁盘目录树->选择文件夹->确认(图后补)
  2. 设置脚本的root_path为刚才导出文件的父目录
  3. 将文后的脚本复制后保存到xxx.py(xxx自定义即可)
  4. 启动cmd命令行(需要已经安装了python)
    python xxx.py
  5. 启动为知笔记,选择要存放新笔记的目录,菜单栏->导入->(待确认)->确认
  6. 等待导入完成,检查一下是否按目录,按原笔记名称已经导入成功
  7. done

脚本源代码

# _*_ coding: utf-8 _*_

import os

root_path = 'C:/Users/Hht/Desktop/temp/processed/'


def list_dir(dir):
    if os.path.isdir(dir):
        # 递归进入子目录
        sub_dirs = os.listdir(dir)
        for sub_dir in sub_dirs:
            list_dir(dir + '/' + sub_dir)
    else:
        # 对最深层级的文件进行操作
        idx = dir.rfind('/')
        print('dir: ' + dir)
        file_name = dir[idx + 1:]
        # 保留文档结尾 到 suffix
        suffix_idx = file_name.rfind('.')
        suffix = file_name[suffix_idx:]
        print('suffix ' + suffix)

        dir_idx = dir[:idx].rfind('/')
        p_dir_name = dir[dir_idx + 1:idx]

        # 保留文件倒数第二级目录到p_dir
        p_dir = dir[:dir_idx]
        print('dir_name: ' + p_dir_name)
        print('p_dir_name: ' + dir[:idx])

        # 讲mybase文件重命名为父目录名字+原后缀
        os.rename(dir, p_dir + os.path.sep + p_dir_name + suffix)
        print('rename: ' + dir + ' to: ' + p_dir + os.path.sep + p_dir_name + suffix)
        print('----------')

# 删去已经将文件重命名了的文件夹
def remove_empty_dir(dir):
    if os.path.isdir(dir):
        sub_dirs = os.listdir(dir)
        if len(sub_dirs) < 1:
            try:
                print('crt rmdir: ' + dir)
                os.rmdir(dir)
            except BaseException as e:
                pass
        for sub_dir in sub_dirs:
            remove_empty_dir(dir + '/' + sub_dir)


list_dir(root_path)
remove_empty_dir(root_path)

后语

可能对于不写python的同学,安装python,跑脚本,比直接拷贝过去要烦人的多吧,23333

上一篇 下一篇

猜你喜欢

热点阅读