客至汲泉烹茶, 抚琴听者知音

自动生成googledrive指定目录的markdown格式的文件夹结构

前言

前一段时间看到goindex项目,无需代理,无需服务器,下载速度感人,顿时我的无限gd有了用武之地。于是迅速搭建好之后,又忙活了几天整理了十几t的资源,很满意。先放个资源库地址。那么问题来了,这么庞大的资源我该如何检索呢?虽然我整理得还是蛮清晰的,可是对于我这个整理者来说要找特定的资源都要费一番功夫,更别说对于新访客了。

于是我决定为所有资源都做一份markdown格式的目录,这样访客可以在一个page中用网页内查找功能方便地查询自己想要的资源,并且能很容易地跳转到指定位置。

github

依赖

代码

import os


# 遍历文件夹
def walkFile(path):
    alist = []
    for root, dirs, files in os.walk(path):
        alist.append(root.split('\\')) # 遍历目录并分隔成列表
    return alist

def process(alist,url,pass_path):
    path_len = len(alist[0])
    web_list = []
    for items in alist:
        web = items[path_len:len(items)]
        print(web)
        if len(web) == 0 or set(pass_path)&set(web):  # 排除根目录以及指定目录
            continue
        webtemp = '{0}{1}{2}{1}'.format(url,'/','/'.join(web))
        website = webtemp.replace(' ','%20')
        web_list.append([len(web),web[-1],website])  
        # 三个参数,分别为路径深度、最后一级目录名称,站点链接
    return web_list

def web2markdown(web_list,md_path):
    handler = open(md_path,"w+",encoding = "utf-8")
    print('目录正在生成中……')
    for web in web_list:
        title_level = web[0]
        if title_level > 3:
            title_level = -1
        handler.write('#'*(title_level+1)+' '+'[' + web[1] + ']' + '(' + web[2] + ')' + '\n'*2)
        print(web[1],'已转化')
    print('目录已生成')
    handler.close()

def main():
    path = r"G:\我的云端硬盘\00分享文件" # 所要生成目录结构的文件夹根目录
    url = 'http://zy.nii.im' # 你自己的gd分享盘链接
    md_path = r"G:\我的云端硬盘\00分享文件\【00】目录\README.md" # md文件的输出路径
    pass_path = ['排除目录1','排除目录2']  # 排除指定目录,可以为空

    web2markdown(process(walkFile(path),url,pass_path),md_path)    

if __name__ == '__main__':
    main()

具体操作

先下载googledrivefilestream,安装后登录。

当然,你需要自行准备代理。

登录成功后,修改偏好设置,把本地缓存目录改到你想要的位置。盘符可以随便。

然后,你就可以在'此电脑'中找到GD盘了,需要注意的是,此盘的可用大小与挂载盘相关(F盘),并不代表只有731G。

等待一段时间,文件目录缓存完之后(不占用真实空间,不必担心把电脑磁盘占满),就可以使用上面的python代码了。

下载安装python(或anaconda),修改main()函数下的相关配置,然后按F5运行程序,运行完成后即可看到README.md文件。

如果你输出目录也设置在gd盘下,生成md之后也会自动上传到gd盘,无需手动上传。

添加新评论