Python将文件夹下的文件名写入excel方便统计
如题,贴代码:
1 ''' 2 #python将某文件夹下的文件名存储到excel中 3 ''' 4 5 #导入所需模块 6 import os 7 import xlwt 8 9 #定义要处理的文件路径(文件夹) 10 file_dir = "D:/" 11 12 #将文件名列出并存储在allfilenames里面 13 allfilenames = os.listdir(file_dir) 14 #打印看是否符合预期 15 print(allfilenames) 16 17 #创建工作簿 18 workbook = xlwt.Workbook() 19 #新建工作表,并且命名为fileNames 20 worksheet = workbook.add_sheet('fileNames') 21 22 #开始往表格里写文件名 23 n = 0 #定义起始行数 24 for i in allfilenames: 25 worksheet.write(n, 0, i) #向单元格里内写入i 26 n += 1 #写完一个i写完一行后n自加1 27 28 #保存工作簿 29 workbook.save('D:/Python代码素材/excel自动化办公/2020-11-05-filenames-excel.xls')
最终效果:
补充,利用xlwt带格式写入,模板如下:
代码如下:
1 ''' 2 #python利用模板格式对某文件夹下的文件名写入excel 3 ''' 4 #导入所需模块 5 import os 6 import xlwt 7 import xlrd 8 from xlutils.copy import copy 9 10 #定义要处理的文件夹 11 file_dir = "D:/" 12 #列出文件名并保存到allfilenames 13 allfilenames = os.listdir(file_dir) 14 #打印是否符合预期 15 print(allfilenames) 16 17 #读取模板 18 tem_excel = xlrd.open_workbook('D:/Python代码素材/excel自动化办公/文件名模板.xls',formatting_info=True) 19 tem_sheet = tem_excel.sheet_by_index(0) 20 21 #复制模板 22 new_excel = copy(tem_excel) 23 new_sheet = new_excel.get_sheet(0) 24 25 #定义格式 26 style = xlwt.XFStyle() 27 #定义字体 28 font = xlwt.Font() 29 font.name = "微软雅黑" 30 font.bold = True 31 font.height = 360 32 #将字体样式写入到总样式 33 style.font = font 34 35 #定义边框 36 borders = xlwt.Borders() 37 borders.top = xlwt.Borders.THIN 38 borders.right = xlwt.Borders.THIN 39 borders.bottom = xlwt.Borders.THIN 40 borders.left = xlwt.Borders.THIN 41 #将边框样式写入到总样式 42 style.borders = borders 43 44 #定义对齐样式 45 alignment = xlwt.Alignment() 46 alignment.horz = xlwt.Alignment.HORZ_CENTER 47 alignment.vert = xlwt.Alignment.VERT_CENTER 48 #将对齐样式写入到总样式 49 style.alignment = alignment 50 51 #定义起始行数,模板里的要求是从第二行写入 52 n = 1 53 #开始循环 54 for i in allfilenames: 55 new_sheet.write(n, 0, i, style) #在指定行和第一列写入i并附带我们规定的样式 56 n += 1 #每次循环完后行数n自增1 57 58 #保存工作簿 59 new_excel.save("D:/Python代码素材/excel自动化办公/2020-11-05-tem-xlrd-excel.xls")
效果:
第三,利用openpyxl带格式写入,模板还是上面的模板。
1 import os 2 import openpyxl 3 4 #定义要处理的文件夹 5 file_dir = "D:/" 6 #列出文件名 7 allfilenames = os.listdir(file_dir) 8 print(allfilenames) 9 10 #导入模板 11 tem_excel = openpyxl.load_workbook("D:/Python代码素材/excel自动化办公/文件名模板_openpyxl.xlsx") 12 tem_sheet = tem_excel['Sheet1'] 13 14 #用个笨办法,还没有想到好办法,先确定有多少文件 15 print(len(allfilenames)) #22 16 #开始写入 17 18 tem_sheet['A2'] = allfilenames[0] 19 tem_sheet['A3'] = allfilenames[1] 20 tem_sheet['A4'] = allfilenames[2] 21 tem_sheet['A5'] = allfilenames[3] 22 tem_sheet['A6'] = allfilenames[4] 23 tem_sheet['A7'] = allfilenames[5] 24 tem_sheet['A8'] = allfilenames[6] 25 tem_sheet['A9'] = allfilenames[7] 26 tem_sheet['A10'] = allfilenames[8] 27 tem_sheet['A11'] = allfilenames[9] 28 tem_sheet['A12'] = allfilenames[10] 29 tem_sheet['A13'] = allfilenames[11] 30 tem_sheet['A14'] = allfilenames[12] 31 tem_sheet['A15'] = allfilenames[13] 32 tem_sheet['A16'] = allfilenames[14] 33 tem_sheet['A17'] = allfilenames[15] 34 tem_sheet['A18'] = allfilenames[16] 35 tem_sheet['A19'] = allfilenames[17] 36 tem_sheet['A20'] = allfilenames[18] 37 tem_sheet['A21'] = allfilenames[19] 38 tem_sheet['A22'] = allfilenames[20] 39 tem_sheet['A23'] = allfilenames[21] 40 41 #另存为 42 tem_excel.save("D:/Python代码素材/excel自动化办公/2020-11-05-openpyxl-filename.xlsx")
最后一段代码求改进方法。