• 生成百度网盘目录文件


    1. 在装有百度网盘客户端并曾经至少登录过一次网盘账号的本机上找到一个名为 BaiduYunCacheFileV0.db 的文件;
    2. 使用Python脚本撰写如下代码:
    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    from tkinter import *
    from tkinter.filedialog import askopenfilename
    from tkinter.filedialog import asksaveasfilename
    from tkinter.ttk import *
    import sqlite3
    
    
    def select_db_file():
        db_file = askopenfilename(
            title="请选择BaiduYunCacheFileV0.db文件", filetypes=[("db", "*.db")]
        )
        db.set(db_file)
    
    
    def select_save_file():
        save_file = asksaveasfilename(filetypes=[("文件", "*.txt")])
        f.set(save_file + ".txt")
    
    
    def write_file(file_dict, f, item, gap=""):
        if item == "/":
            f.write("━" + "/" + "
    ")
            for i in file_dict["/"]:
                f.write("┣" + "━" + i + "
    ")
                i = item + i + "/"
                if i in file_dict:
                    write_file(file_dict, f, i, gap="┣━")
        else:
            gap = "┃  " + gap
            for i in file_dict[item]:
                f.write(gap + i + "
    ")
                i = item + i + "/"
                if i in file_dict:
                    write_file(file_dict, f, i, gap)
    
    
    def create_baiduyun_filelist():
        file_dict = {}
        conn = sqlite3.connect(db.get())
        cursor = conn.cursor()
        cursor.execute("select * from cache_file")
        while True:
            value = cursor.fetchone()
            if not value:
                break
            path = value[2]
            name = value[3]
            size = value[4]
            isdir = value[6]
            if path not in file_dict:
                file_dict[path] = []
                file_dict[path].append(name)
            else:
                file_dict[path].append(name)
        with open(f.get(), "w", encoding="utf-8") as fp:
            write_file(file_dict, fp, "/")
    
    
    root = Tk()
    root.title("百度云文件列表生成工具")
    db_select = Button(root, text=" 选择DB文件 ", command=select_db_file)
    db_select.grid(row=1, column=1, sticky=W, padx=(2, 0), pady=(2, 0))
    db = StringVar()
    db_path = Entry(root, width=80, textvariable=db)
    db_path["state"] = "readonly"
    db_path.grid(row=1, column=2, padx=3, pady=3, sticky=W + E)
    save_path = Button(root, text="选择保存地址", command=select_save_file)
    save_path.grid(row=2, column=1, sticky=W, padx=(2, 0), pady=(2, 0))
    f = StringVar()
    file_path = Entry(root, width=80, textvariable=f)
    file_path["state"] = "readonly"
    file_path.grid(row=2, column=2, padx=3, pady=3, sticky=W + E)
    create_btn = Button(root, text="生成文件列表", command=create_baiduyun_filelist)
    create_btn.grid(row=3, column=1, columnspan=2, pady=(0, 2))
    root.columnconfigure(2, weight=1)
    root.mainloop()
    

    1. 将之前所找到的 *.db 文件放入第一个路径中,并选择生成的目录保存路径,点击确定,即可。




    作者:艾孜尔江

  • 相关阅读:
    Golang内存管理和垃圾回收
    深入浅出依赖注入及其在抖音直播中的应用
    applications of DFS and BFS
    操作系统上的程序 (什么是程序和编译器)
    安全通告 | 疑似PurpleFox多手段持续实施攻击活动
    日志导致线程Block的这些坑
    聊聊分布式锁
    汇编_action
    操作系统:设计与实现 (2022 春季学期)
    tldr man 查手册效率工具
  • 原文地址:https://www.cnblogs.com/ezhar/p/13945653.html
Copyright © 2020-2023  润新知