结合AI提取并保存百度网盘的目录【详细,附有代码】

前言

文件的存储重要性不言而喻,一般是存放在网盘。在网盘里面可以很清晰地看出目录的层次。但有时候我们想导出特定的文件的目录(层次),发现并没有现成的解决方案。我写提示词,问了AI相关方法,并结合代码(毕竟是程序员),做了一个提取并保存目录的程序案例,在此和大家分享实现过程。

一、提问和AI回答

1、提示词

我的百度网盘中的文件有很多子文件夹,我想快捷提取(导出)这些文件的命名,生成一个索引,可以如何实现?

2、AI回答

(一共三种,我只试了第一种,其他两种自行尝试)

方案一

  • 使用百度网盘 PC 客户端和 Navicat Premium2
    • 找到数据库文件:右键点击百度云客户端快捷方式,选择 “打开文件位置(XP 不适用)”,或点属性查看快捷方式目标,一般在 “C:\Users\Administrator\AppData\Roaming\baidu\BaiduYunGuanjia\” 位置。打开后进入 user 目录,再打开那个一长串的文件夹,找到 “BaiduYunCacheFileV0.db” 文件,这个文件存放着网盘的详细信息。
    • 连接数据库:打开 Navicat Premium,点击连接,选择 SQLite,在常规选项中选择现有数据库文件,浏览并选择刚才找到的 “BaiduYunCacheFileV0.db” 文件,点击 “连接测试”,显示 “连接成功” 后点击确定回到主界面。
    • 查看并导出数据:双击建立的百度云管家数据库,出现 main,再双击 main,点开表,双击 cache_file 表,这里面是网盘上的所有目录结构信息,其中 parent_path 是路径,server_filename 是文件名。点击导出按钮,可以选择全部导出或导出自己需要的部分。

方案二 

  • 使用网页版百度网盘4
    • 登录并进入设置:打开百度网盘网页版,登录账号后,在页面右上角找到 “我的” 选项,点击进入个人中心,然后找到 “设置” 选项并点击进入。
    • 选择导出格式并导出:在设置页面中找到 “导出” 选项,选择导出为 HTML 格式,并点击开始按钮开始导出。等待一段时间后,导出的 HTML 文件就会保存在指定位置,该文件包含了百度网盘的目录结构信息,可从中提取文件命名。

方案三 

  • 使用第三方工具 mybaiduexport.exe6
    • 运行程序:双击运行 mybaiduexport.exe 程序。
    • 选择文件与保存地址:程序启动后,选择 DB 文件,即 “BaiduYunCacheFileV0.db” 文件的位置,默认在百度网盘安装目录下的 /users 文件夹中。然后选择一个保存地址,用于保存导出的文件列表。
    • 设置相关参数并生成:设置 “要导出的文件的深度”,即希望导出的目录层级深度。点击 “生成文件列表” 按钮后,程序将解析 DB 文件,提取出百度网盘上的文件列表信息,并保存到指定路径。

3、常用的筛选(Navicat Premium)

  • 按特定字段值筛选1
    • 打开表和筛选界面:打开数据库,双击打开需要查询的表,点击 “筛选” 按钮,出现筛选选项。
    • 选择筛选字段:点击 “按这里添加”,从下拉菜单中选择需要查询的字段。
    • 设置筛选条件:点击 “包含”,从下拉菜单中选择查询条件,如 “等于”“不等于”“大于”“小于”“包含”“不包含” 等。然后在输入框中输入需要查询的具体值,点击右下角的 “应用” 按钮,最后按 F5 刷新,即可显示筛选后的数据。
  • 按多个条件筛选
    • 添加多个筛选条件:按照上述按特定字段值筛选的步骤,先添加一个筛选条件。若还需添加其他条件,可再次点击 “按这里添加”,继续选择字段和设置条件。多个条件之间默认是 “与” 的关系,即同时满足多个条件的数据才会被筛选出来。
    • 调整条件逻辑关系:如果需要改变条件之间的逻辑关系,如 “或” 关系,可以点击筛选条件之间的 “与”“或” 按钮进行切换。
  • 按日期范围筛选
    • 选择日期字段:在 “按这里添加” 的下拉菜单中选择日期类型的字段。
    • 设置日期范围:点击 “包含”,选择 “在范围内” 或 “不在范围内” 等条件。然后在弹出的日期选择器中选择起始日期和结束日期,点击 “应用” 并按 F5 刷新,即可筛选出指定日期范围内的数据。
  • 按空值或非空值筛选
    • 选择字段:点击 “按这里添加”,选择要筛选的字段。
    • 设置筛选条件:点击 “包含”,选择 “为空” 或 “不为空” 条件,点击 “应用” 并按 F5 刷新,可筛选出该字段为空值或非空值的数据。

“筛选-条件书写、增加条件-应用 "

二、结合代码

1、提示词

先不管筛选条件,如果我想将方法1的使用情况用编程快速且方便实现,推荐用哪个编程语言,以及告诉我如何实现。

2、AI回答

import sqlite3
import csv


def generate_baidu_cloud_index(db_path, output_path):
    try:
        # 连接到 SQLite 数据库
        conn = sqlite3.connect(db_path)
        cursor = conn.cursor()

        # 查询文件信息
        query = "SELECT parent_path, server_filename FROM cache_file"
        cursor.execute(query)
        rows = cursor.fetchall()

        # 保存结果到 CSV 文件
        with open(output_path, 'w', newline='', encoding='utf-8') as csvfile:
            writer = csv.writer(csvfile)
            # 写入表头
            writer.writerow(['parent_path', 'server_filename'])
            # 写入数据
            writer.writerows(rows)

        print(f"索引文件已成功保存到 {output_path}")
    except sqlite3.Error as e:
        print(f"数据库操作出错: {e}")
    except Exception as e:
        print(f"发生未知错误: {e}")
    finally:
        if conn:
            conn.close()


if __name__ == "__main__":
    # 替换为实际的数据库文件路径
    db_file_path = "C:\\Users\\Administrator\\AppData\\Roaming\\baidu\\BaiduYunGuanjia\\user\\your_folder\\BaiduYunCacheFileV0.db"
    # 替换为你想要保存索引文件的路径
    output_file_path = "baidu_cloud_index.csv"
    generate_baidu_cloud_index(db_file_path, output_file_path)
    

3、一些优化

一开始AI给出的代码,文件的位置以及输出文件的位置是写死的,需要自己手动在代码中改写。这次简化成让用户自行自行输入(并且保留保存的默认位置)

1)提示词

做一些优化,进入程序的时候先提示用户输入实际的百度网盘数据库文件路径,然后再提示输入保存索引文件的路径(如果不输入则默认保存在桌面上)。

2)AI回答

import sqlite3
import csv
import os


def generate_baidu_cloud_index(db_path, output_path):
    try:
        # 连接到 SQLite 数据库
        conn = sqlite3.connect(db_path)
        cursor = conn.cursor()

        # 查询文件信息
        query = "SELECT parent_path, server_filename FROM cache_file"
        cursor.execute(query)
        rows = cursor.fetchall()

        # 保存结果到 CSV 文件
        with open(output_path, 'w', newline='', encoding='utf-8') as csvfile:
            writer = csv.writer(csvfile)
            # 写入表头
            writer.writerow(['parent_path', 'server_filename'])
            # 写入数据
            writer.writerows(rows)

        print(f"索引文件已成功保存到 {output_path}")
    except sqlite3.Error as e:
        print(f"数据库操作出错: {e}")
    except Exception as e:
        print(f"发生未知错误: {e}")
    finally:
        if conn:
            conn.close()


if __name__ == "__main__":
    # 提示用户输入百度网盘数据库文件路径
    db_file_path = input("请输入百度网盘数据库文件(BaiduYunCacheFileV0.db)的路径: ")

    # 提示用户输入保存索引文件的路径
    output_file_path = input("请输入要保存索引文件的路径(留空则默认保存到桌面): ")
    if not output_file_path:
        # 获取桌面路径
        desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
        output_file_path = os.path.join(desktop_path, "baidu_cloud_index.csv")

    generate_baidu_cloud_index(db_file_path, output_file_path)
    

3)一些提示(点到为止)

优化或者可能存在的问题

  • 编码问题(乱码)
  • 筛选功能(根据上述思路,写提示词让AI生成,然后自行调试)

三、效果演示

PS:我做的版本增加了筛选功能。

打开生成后的csv文件。 

四、常见问题

  • 运行程序的python版本? 

-python3 

  • 百度网盘数据库文件(BaiduYunCacheFileV0.db)的路径

前面的AI回答中有答案,自行查找。

  • 对路径名的输入有什么要求?

有多级目录就以“/子文件夹”的形式补充

比如这是你的网盘目录

  • 你想查找25考研的英语学习的文件

那么你就输入:25考研/英语学习

  • 如果你想查找编程文件夹下的文件

那么你就输入:编程 

五、总结

案例就到此结束了,欢迎提问和交流,peace~ 

为了帮助你掌握如何使用Python结合百度AI实现视频中字幕的自动提取,这里推荐《Python实现视频字幕提取与百度AI识别》。在这个项目中,你将学习到如何将视频分解为一系列图片,然后对这些图片进行处理,最终通过OCR技术提取文字保存。 参考资源链接:[Python实现视频字幕提取与百度AI识别](https://wenku.csdn.net/doc/6401acf1cce7214c316edb65) 首先,你需要使用Python的OpenCV库来读取视频文件,按照设定的帧频进行裁剪,获取视频中的每一帧。接下来,对每帧图片进行必要的处理,例如调整图像大小、裁剪字幕区域、转换为灰度图像,以提高OCR识别的准确率。 在完成图像预处理之后,你需要调用百度的OCR API来识别图像中的文字。这通常涉及到将图像编码为base64格式,然后发送HTTP请求到百度的OCR接口。利用`AipOcr`模块,可以方便地实现这一过程,将返回的识别结果保存为文本文件。 这里是一个简化的代码示例,展示了整个流程的核心部分: ```python import cv2 from AipOcr import AipOcr import base64 # 初始化百度OCR服务 client = AipOcr('你的APP_ID', '你的API_KEY', '你的SECRET_KEY') # 视频文件路径 video_path = 'path/to/your/video.mp4' cap = cv2.VideoCapture(video_path) frame_rate = 1 # 每隔多少帧提取一次图像 while True: ret, frame = cap.read() if not ret: break # 每frame_rate帧处理一次 if cap.get(cv2.CAP_PROP_POS_FRAMES) % frame_rate == 0: # 图像预处理 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 假设已经进行了字幕区域的裁剪和灰度处理... # 对图像进行base64编码 _, buffer = cv2.imencode('.png', gray) image_base64 = base64.b64encode(buffer).decode('utf-8') # 调用百度OCR API进行文字识别 res = client的文字识别接口(image_base64, 'png') # 保存识别结果 with open('subtitle.txt', 'a', encoding='utf-8') as f: f.write(res['words_result']) # 更新帧计数 cap.set(cv2.CAP_PROP_POS_FRAMES, cap.get(cv2.CAP_PROP_POS_FRAMES) + 1) cap.release() ``` 请注意,实际使用时,你需要替换`你的APP_ID`、`你的API_KEY`和`你的SECRET_KEY`为你在百度云平台注册的凭证,且可能需要根据实际的字幕区域对图像进行裁剪和处理。 以上代码和过程展示了如何将视频处理、图像处理、OCR技术及文件操作结合在一起,实现视频字幕的自动化提取。如果你对以上提到的任何一个环节感兴趣,希望进一步学习,那么《Python实现视频字幕提取与百度AI识别》将是你的理想选择。这份资源不仅能够加深你对图像处理和OCR技术的理解,还能让你在实际项目中应用这些技能。 参考资源链接:[Python实现视频字幕提取与百度AI识别](https://wenku.csdn.net/doc/6401acf1cce7214c316edb65)
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十八朵郁金香

感恩前行路上有你相伴

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值