使用python 输出完整目录和文件结构的小程序folder2txt.py,输出能呈现整树状结构,并输出txt

我们使用了不同的符号来表示目录和文件,并在文件之间添加了线条。对于每个目录,我们打印出一个├──符号,后面跟着目录名。对于文件,我们在除了最后一个文件之外的每个文件前面都添加了一个│ 符号,表示它们在同一层级上。对于最后一个文件,我们使用└──符号,表示它是当前层级的最后一个项目。

代码如下

import os  # 导入os模块,用于文件和目录操作

def list_files_with_full_path(startpath, output_filename):
    """
    遍历指定文件夹路径,并打印出所有子文件夹和文件的结构。
    同时将结构输出到控制台和一个文本文件中。
    
    参数:
    startpath -- 要遍历的起始文件夹路径
    output_filename -- 输出文件的名称
    """
    with open(output_filename, 'w', encoding='utf-8') as f:  # 打开输出文件以写入模式
        print(f'│ [Start Directory: {start_directory}]', file=f)  # 将起始目录信息写入文件
        print(f'│ [Start Directory: {start_directory}]')  # 打印起始目录信息到控制台

        for root, dirs, files in os.walk(startpath):  # 遍历文件夹及其子文件夹
            level = root.replace(startpath, '').count(os.sep)  # 计算当前目录的深度
            indent = ' ' * 4 * (level)  # 根据深度生成缩进字符串
            dir_line = f'{indent}├── [Directory: {os.path.basename(root)}]'  # 构建表示目录的字符串
            print(dir_line, file=f)  # 将目录信息写入文件
            print(dir_line)  # 打印目录信息到控制台
            subindent = ' ' * 4 * (level + 1)  # 生成文件的缩进字符串
            for index, filename in enumerate(files):  # 遍历当前目录下的所有文件
                if index < len(files) - 1:  # 如果不是最后一个文件
                    file_line = f'{subindent}│   {filename}'  # 构建文件的字符串
                else:  # 如果是最后一个文件
                    file_line = f'{subindent}└── {filename}'  # 构建文件的字符串
                print(file_line, file=f)  # 将文件信息写入文件
                print(file_line)  # 打印文件信息到控制台

# 使用函数
start_directory = r'E:\\Model'  # 设置要遍历的起始文件夹路径
output_file = 'file_structure.txt'  # 设置输出文件的名称
list_files_with_full_path(start_directory, output_file)  # 调用函数

输出效果,能呈现整树枝状结构,并输出txt file

这段代码的输出将同时在控制台上显示,并且保存在指定的文本文件中,从而提供了一个可视化的文件夹结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值