Python将指定文件夹下的文件名及文件夹名按级存储到EXCEL中
有的时候我们需要对某一文件夹下的文件进行整理,并实现保存,手动获取每一层文件夹下的文件名太过于繁琐。Python帮你解决这个问题。
1.代码实现
import os
import openpyxl
import pandas as pd
m = 0 # 列名
n = 1 # 行名
mFiles = []
#把data输出到该目录下,并以目录名保存为excel格式
wb = openpyxl.Workbook()
sheet = wb.active
#设置表名
sheet.title = “bb”
she = [“A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “G”, “K”, “L”, “M”, “N”, “O”, “P”, “Q”, “R”, “S”, “T”, “U”, “V”,
“W”, “X”, “Y”, “Z”, “AA”, “AB”]
def get_file_name(file_dir):
‘’’
获取指定目录下所有文件名称
:param file_dir:指定目录
:return:返回文件名列表
‘’’
#os.walk遍历指定文件夹下的所有文件
for root, dirs, files in os.walk(file_dir):
# return root#当前目录路径
# return dirs#当前路径下所有子目录
return dirs # 当前路径下所有非目录子文件
def class_file_name(file_dir):
‘’’
获取指定文件夹下的指定文件类型名称
:param file_dir:指定目录
:param file_type:可以获取 指定文件,如.jpg
:return:返回文件名列表
‘’’
#os.listdir遍历当前文件夹下的文件名和文件夹名。只遍历一级目录
dirs = os.listdir(file_dir)
# 输出所有文件和文件夹
for dir in dirs:
if dir.startswith(".") == False:#筛去隐藏文件名
file = os.path.join(file_dir, dir)
# print(child)
if os.path.isdir(file):
class_file_name(file)
# print(child)
# else:
# print(file)
file = file.replace("\\", ‘\’)#file为路径
file = file.split(’\’)#按’\'将字符串分割
mFiles.append(file)#每一个文件对应的路径为一个列表
‘’’
def export_excel(file_dir):
# 将字典、列表转换为DataFrame
pf = pd.DataFrame(list(file_dir))
# 指定生成的Excel表格名称
file_path = pd.ExcelWriter(‘name.xlsx’)
# 替换空单元格
pf.fillna(’ ‘, inplace=True)
# 输出
pf.to_excel(file_path, encoding=‘utf-8’, index=False)
# 保存表格
file_path.save()
‘’’
#指定路径
file_dir = r"G:\论文"
#获取指定文件夹下文件的名称
class_file_name(file_dir)
#print(mFiles)
#将目录按级存储
for i in range(0, len(mFiles)):
for j in range(0, len(mFiles[i])):
sheet[’{}{}’.format(she[m], n)] = mFiles[i][j].split(’.’)[0]
print(len(mFiles[i]))
print(j)
m = m + 1
n = n + 1
m = 0
#将文件及文件夹名保存到a.xlsx中
wb.save(’{0}.xlsx’.format(“a”))
##2.实现效果