mybase导入html,MyBase 7.x笔记迁移到为知笔记脚本

前言

因为myBase的本地相应速度快,目录树好看,所以在本地环境一直用myBase,而且近期升级到了7.0

因为有跨平台共享的需求,所以需要云笔记

因为为知笔记国产,界面简洁,便宜等原因,云笔记app选择为知

因为现成的工具只支持myBase 5.x/6.x 的迁移,所以手动写了个脚本

原理

myBase 7.x采用所有笔记皆目录,再在目录下存放4种格式的文件来存放笔记,和myBase 5.x/6.x直接按笔记名保存为文件不同,因此mybase2wiz插件失效

经过寻找,mybase可以导出目录树,为知笔记可以导入html/md/text,因此脚本的作用就将mybase导出结果修改为为知笔记导入后,笔记名称保持不变

步骤

mybase选中所有要导出的目录,菜单栏选择导出->导出磁盘目录树->选择文件夹->确认(图后补)

设置脚本的root_path为刚才导出文件的父目录

将文后的脚本复制后保存到xxx.py(xxx自定义即可)

启动cmd命令行(需要已经安装了python)

python xxx.py

启动为知笔记,选择要存放新笔记的目录,菜单栏->导入->(待确认)->确认

等待导入完成,检查一下是否按目录,按原笔记名称已经导入成功

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值