首页 > 其他分享 >Notion导出批量更改脚本

Notion导出批量更改脚本

时间:2022-12-01 17:34:43浏览次数:45  
标签:old name 批量 url 导出 文件夹 path new Notion

0. 缘起

问就是和Notion分手后的阵痛

导出会有很多乱码,我忍受了一段时间终于忍不了了,掏出学了一点点的python,写了个脚本。该脚本就是检测到当前文件 OR 文件夹名称中含有.,就对它进行相应更改。

## 注意

请确保你已经安装python环境,请先测试下是否满足,脚本运行后不可恢复!

以下文件名为changeFileName.py

运行命令python changeFileName.py

path为你需要改动的本地地址。

1. 初版-只能改变 1 个文件夹下的内容

import os

# path = r'E:\ECloud\学习之路'
path = r'E:\Temp'
folder_names = os.listdir(path)
mdSuffix = '.md'

for name in folder_names:
    # pic_names = os.listdir(path + '\\' + name)
    isFolder = mdSuffix in name
    old_name = path + '\\' +name
    if isFolder:
        # 先处理文件夹 只取[0]
            # 文件夹下的旧文件名
        # 文件夹下的新文件名
        new_name = old_name.split(mdSuffix)[0]
        print('old_name',old_name,'\nnew_name',new_name)
    else:
        # 文件夹下的新文件名
        new_name = old_name+mdSuffix
        print('old_name',old_name,'\nnew_name',new_name)
        # 如果文件名中不含.md
        # 则是md文件,处理完姓名后需要再拼接回去.md
    os.rename(old_name,new_name)


2. 加强版-调用递归,改变当前文件夹下所有内容

import os

# path = r'E:\ECloud\学习之路\React'
path = r'E:\ECloud\Work'
folder_names = os.listdir(path)

# 获取拼接好的文件地址
def getFileUrl(url,name):
    return url+'\\'+name

# 对文件名的处理
def getFileName(old_name,url):
        # 文件夹下的新文件名
        new_name = old_name.split(' ')[0]+'.md'
        # 如果文件名中不含.md
        # 则是md文件,处理完姓名后需要再拼接回去.md
        notPic = '.png' not in old_name
        # 如果不含空格,则直接退出
        # 注:此处可以增加对Database的判断,我是没用到太多,就手动处理了
        notHaveBlank = ' ' not in old_name
        if notHaveBlank:
            return

        if notPic:
            print('old_name',old_name,'\nnew_name',new_name)
            os.rename(getFileUrl(url,old_name),getFileUrl(url,new_name))

# 是否是文件夹的判断
def isFolder(name):
    return '.' not in name

# 对文件夹的处理
# *重点1:folderFunc函数为递归函数,反复调用自己,深入文件夹
def folderFunc(old_name,url):
    print('old_name',old_name,'\nurl:',url)
    innerNames = os.listdir(getFileUrl(url,old_name))
    originUrl = url
    for innerName in innerNames:
        if isFolder(innerName):
            url = getFileUrl(originUrl,old_name)
            folderFunc(innerName,url)
        else:
            url = getFileUrl(originUrl,old_name)
            getFileName(innerName,url)
    # *重点2:一定要处理无空格的情况,否则会报错
    notHaveBlank = ' ' not in old_name
    if notHaveBlank:
        return

    # 把文件夹命名更改放在最后做
    new_name = old_name.split(' ')[0]
    os.rename(getFileUrl(originUrl,old_name),getFileUrl(originUrl,new_name))

# 运行python后当即进入以下代码
for name in folder_names:
    url = path
    if isFolder(name):
        folderFunc(name,url)
    else:
        getFileName(name,url)

3. 效果

1669886835242

标签:old,name,批量,url,导出,文件夹,path,new,Notion
From: https://www.cnblogs.com/lepanyou/p/16942124.html

相关文章