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

最后一段代碼求改進方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM