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

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

直接上代码

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里面的所有文件即文件夹…不过暂且也能用了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Python的os模块和shutil模块来实现。 首先,使用os.listdir()函数获取文件夹下的所有文件名。然后使用with open()函数将文件名写入txt文件。 代码示例: ``` import os folder_path = '文件夹路径' file_list = os.listdir(folder_path) with open('文件名.txt', 'w') as file: for file_name in file_list: file.write(file_name + '\n') ``` 若要在txt文件中创建超链接,可以在写入文件名时使用格式化字符串,在文件名前加上超链接的html标签。 代码示例: ``` import os folder_path = '文件夹路径' file_list = os.listdir(folder_path) with open('文件名.txt', 'w') as file: for file_name in file_list: file.write('<a href="{}">{}</a>\n'.format(os.path.join(folder_path, file_name), file_name)) ``` 这样txt文件中的文件名就会以超链接的形式出现。 ### 回答2: 要实现将文件夹下的文件名写入txt文件并创建超链接,可以使用Python的os模块和HTML标签。 首先,导入os模块并使用os.listdir()函数获取文件夹下的所有文件名。然后,使用open()函数创建一个txt文件,并使用文件对象的write()方法将文件名写入txt文件中。 接着,使用HTML标签创建超链接。在每个文件名前添加<a>标签,设置href属性为文件的路径,将文件名作为链接文本。最后,在每个文件名后添加</a>标签来关闭超链接。 下面是示例代码: ```python import os folder_path = '文件夹路径' # 替换为你的文件夹路径 txt_path = '输出txt文件路径' # 替换为你的输出txt文件路径 file_names = os.listdir(folder_path) with open(txt_path, 'w') as txt_file: for file_name in file_names: file_path = os.path.join(folder_path, file_name) txt_file.write('<a href="{0}">{1}</a>\n'.format(file_path, file_name)) ``` 请将`文件夹路径`和`输出txt文件路径`替换为你的实际路径。运行以上代码后,指定路径下的文件名将被写入txt文件,并且每个文件名都会以超链接的形式展示。 ### 回答3: 要实现将文件夹下的文件名写入txt文件,并创建超链接,可以使用Python的os和re模块来处理文件夹文件名的操作。 首先,我们需要使用os模块的listdir()函数来获取文件夹下的所有文件名,然后使用re模块的search()函数来提取文件名的扩展名。 接下来,我们可以使用Python的open()函数打开一个txt文件,并利用循环遍历文件名列表,将每个文件名写入txt文件中。在写入文件名之前,我们可以根据文件名的扩展名动态地创建相应的超链接格式。 下面是一个实现这个功能的Python代码示例: ```python import os import re folder_path = "文件夹路径" txt_file_path = "输出的txt文件路径" file_names = os.listdir(folder_path) with open(txt_file_path, "w") as file: file.write("<html>") file.write("<body>") for name in file_names: ext = re.search(r'\.(.+)', name) if ext: ext = ext.group(1) file.write(f"<a href='{name}'>{name}</a><br>") else: file.write(f"{name}<br>") file.write("</body>") file.write("</html>") ``` 上述代码中,只需将"文件夹路径"替换为你想要处理的文件夹的路径,将"输出的txt文件路径"替换为你想要输出的txt文件的路径,运行代码后,会在指定路径下生成一个txt文件,其中包含文件夹下所有文件的名称,并为每个文件名创建了超链接。 需要注意的是,上述代码中创建的是一个简单的HTML文件,如果需要在txt文件中创建超链接,建议使用HTML或其他文本编辑器来打开该txt文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值