Python将文件夹下的文件名写入excel方便统计

时间:2024-03-02 20:02:17

如题,贴代码:

 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")

最后一段代码求改进方法。