整理指定文件夹下的所有文件,以类树状图显示并生成对应超链接

最近在整理家里学习资料的时候,由于年代久远,找不到我想要找的文件,windows文件搜索速度感觉太慢。于是想要生成一份类似文件索引的东西来显示所有资料,让我可以快速的找到需要的资料路径

直接上代码

python3 复制代码
import os 
import datetime
  
def generate_folder_tree(folder_path, indent=0):  
    """  
    生成文件夹树状图  
    :param folder_path: 文件夹路径  
    :param indent: 缩进级别,用于显示树状图的层级关系  
    """ 

    for file_name in os.listdir(folder_path):
        link_html = "" 
        #产生一个绝对路径,以便后面用作超链接路径 
        file_path = os.path.join(folder_path, file_name)
        folder_link = file_path  
        folder_link = folder_link.replace("\\", "/")
        x = ' ' * indent + '- ' + file_name
        # <pre>  </pre>   可以保留HTML原始文本中的空格和换行符
        # <br>  换行符,也可以用 </n>代替
        # {folder_link}  超链接路径
        # {x}  写入 html 中的 字符串
        link_html = f'<pre><a href="{folder_link}">{x}</a></n></pre>'
        with open("myFolderPath.html", "a") as file:  
            file.write(link_html)
        if os.path.isdir(file_path): 
            generate_folder_tree(file_path, indent=indent+4) 

# 调用函数生成文件夹树状图
now = datetime.datetime.now()
with open("myFolderPath.html", "w") as file:  
    file.write(str(now))

generate_folder_tree("C:/test")

如上,此代码可以生成一份叫做 myFolderPath.html的 html文件,此文件中将显示 C:/test里所有的文件夹和文件,以类似树状图的方式显示,生成文件后,以浏览器打开 html文件 ,文件内显示如下:
在这个图中,所有文件均可打开,浏览器如果不能跳转,就使用右键打开新的页面,即可查看内容。假如是文件夹,即可显示文件夹内的内容,假如是文件,则可直接打开。

但是打开文件夹路径后,点击返回上层会把其他与C:/test同级文件夹或上级文件夹一同显示出来,但还不知道怎么解决。我的初衷是让他只显示C:/test里面的所有文件即文件夹...不过暂且也能用了。

相关推荐
时间的拾荒人3 分钟前
Qt 窗口系统详解:从菜单栏到对话框的完整指南
开发语言·qt·面试
专业程序开发源6 分钟前
SSM校园拍摄交流服务平台36936-计算机课程设计、毕业设计
java·spring boot·后端·python·elasticsearch·php·课程设计
wuyk55523 分钟前
Python 网络爬虫入门到实战 第 04 章:请求头、UA 伪装、超时、异常处理、基础反爬绕过
开发语言·爬虫·python
流形填表27 分钟前
题库去重实战:基于题干指纹的重复题清理
开发语言·c#
\光辉岁月/30 分钟前
3.java运算符
java·开发语言
kaiyou202634 分钟前
用户研究岗秋招,统计分析能力怎么学习和证明?
数据库·python·学习
知识分享小能手37 分钟前
C++ 学习教程,从入门到精通,string类和标准模板库 — 完整知识点详解(16)
开发语言·c++·学习
qq_4017004142 分钟前
Qt 炫酷曲线,图表,2D/3D开源库
开发语言·qt
weixin_440730501 小时前
装饰器decorator总结(函数即是变量、高阶函数、嵌套函数、参数组)
python·装饰器
零基础1231 小时前
LLM Agent 驱动的物模型构建:从设备手册到边缘接入的自动化实践
运维·人工智能·经验分享·python·自动化