Python递归遍历目录层级并导出文件名为Excel
本文介绍使用Python解决电脑内存占用高或文件夹管理混乱导致查找困难的问题。通过递归遍历指定目录,获取所有文件名及层级结构,并利用xlwt库将数据写入Excel文件。文章提供了完整的Python源码示例及运行效果截图,帮助用户快速实现文件名的批量整理与导出。
一、问题描述
当遇到电脑磁盘空间不足,或者日常工作中文件夹层级管理混乱,导致内部文件数据杂乱无章、检索效率极低时,手动逐个打开文件夹进行查找和清理不仅耗时耗力,且容易遗漏。


二、python按目录层级保存文件名
1.源码
具体实现代码如下所示:
# encoding=utf-8
import os
import xlwt
from xlwt.Worksheet import Worksheet
import time
path = r'E:\py\python3.7\test'
file_dicts = {}
# 将目录名、文件名读取为字典数据
def find_dir_name(path,key=''):
file_names = os.listdir(path)
file_dict = {}
for file_name in file_names:
print('当前目录:%s' % path+'\\'+file_name)
file_dict[file_name] = {}
if os.path.isdir(path+'\\'+file_name):
file_dict[file_name] = find_dir_name(path+'\\'+file_name, file_name)
else:
pass
return file_dict
# 将字典数据存入Excel
def edit_excel(worksheet,data):
# 遍历字典数据
global row_number, row_data
for key,value in data.items():
if value:
row_data.append(key)
# 如果value有值,则进行一次遍历
edit_excel(worksheet,value)
else:
# 若value值为空,则将key写入sheet
# 进行写入excle
col = 0
for name in row_data:
print('位置:%d,%d;值:%s' % (row_number,col,name))
worksheet.write(row_number,col,name)
col = col+1
print('位置:%d,%d;值:%s' % (row_number,col,name))
worksheet.write(row_number,col,key)
row_number = row_number+1
if row_data:
row_data.pop()
# time.sleep(1)
return True
if __name__ == '__main__':
# mm = str(find_dir_name(path,key))
# f = open('file_name.txt', 'wb')
# f.write(mm.encode('utf-8'))
# f.close()
data = find_dir_name(path)
# 创建工作表
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1',cell_overwrite_ok=True)
# 临时记录一行数据
row_data = []
row_number = 0
edit_excel(worksheet,data)
workbook.save('转化后的excel文件名称.xls')
2.运行效果(部分截图)


至此,关于Python实现按目录层级输出文件名并保存为excel的介绍已完成。如需了解更多Python输出文件名的相关内容,欢迎查阅本站过往文章或继续浏览后续教程,感谢大家的支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









