<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天,在工作的時候,我的美女同事問我有沒有辦法自動生成一個這樣的表格:
第一列是院校+科目,第二列是年份,第三列是數量。
這張表格是基於這一資料夾填充的,之前要一個資料夾一個資料夾開啟然後手動填寫年份和數量
手動整理需要耗費較長時間,於是我便開發了一個 Python 程式用來自動生成歸納表格
利用正規表示式+OS庫+openpyxl生成真題年份歸納表格
第一步,遍歷資料夾下的所有檔案和子資料夾的名稱,並獲取子資料夾下的檔案的年份資訊和數量資訊
第二步,將年份資訊進行格式化,連續的年份取最小值和最大值,並用“-”連線,單獨的年份單獨提取出,並用頓號連線
第三步,寫入資料到Excel中
遍歷檔案,新建資料存放的List
path=os.getcwd() file_list=list(os.walk(path)) infomation=[] yearList=[]
獲取資訊
if '/' in path: infomation.append(file_list[i][0].replace(path+'/','')) elif '\' in path: infomation.append(file_list[i][0].replace(path+'\','')) totalNum=len(file_list[i][2]) for j in range (0,len(file_list[i][2])): year=re.findall(r'd{4}',file_list[i][2][j]) yearList.append(int(year[0])) yearList.sort()
年份資訊格式化
for i in range(len(yearList)): if not res: res.append([yearList[i]]) elif yearList[i-1]+1==yearList[i]: res[-1].append(yearList[i]) else: res.append([yearList[i]]) y=[] for m in range (0,len(res)): if(max(res[m])==min(res[m])): y.append(str(max(res[m]))) else: y.append(str(min(res[m]))+'-'+str(max(res[m]))) yearInfo="、".join(y)
儲存資料並輸出到Excel中
infomation.append(yearInfo) infomation.append(totalNum) print(infomation) ws.append(infomation) wb.save('表格.xlsx') infomation=[] yearList=[]
最終的完整程式碼如下
import os import re from openpyxl import load_workbook wb=load_workbook('表格.xlsx') ws=wb.active path=os.getcwd() file_list=list(os.walk(path)) infomation=[] yearList=[] for i in range (1,len(file_list)): if '/' in path: infomation.append(file_list[i][0].replace(path+'/','')) elif '\' in path: infomation.append(file_list[i][0].replace(path+'\','')) totalNum=len(file_list[i][2]) for j in range (0,len(file_list[i][2])): year=re.findall(r'd{4}',file_list[i][2][j]) yearList.append(int(year[0])) yearList.sort() res=[] for i in range(len(yearList)): if not res: res.append([yearList[i]]) elif yearList[i-1]+1==yearList[i]: res[-1].append(yearList[i]) else: res.append([yearList[i]]) y=[] for m in range (0,len(res)): if(max(res[m])==min(res[m])): y.append(str(max(res[m]))) else: y.append(str(min(res[m]))+'-'+str(max(res[m]))) yearInfo="、".join(y) infomation.append(yearInfo) infomation.append(totalNum) print(infomation) ws.append(infomation) wb.save('表格.xlsx') infomation=[] yearList=[]
好啦,程式不復雜,不過卻大大提高了工作效率,不得不說,Python真棒!
到此這篇關於Python實現自動整理表格的範例程式碼的文章就介紹到這了,更多相關Python自動整理表格內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45