Python拆装之旅:探索Python的组装与拆卸
带你走进 @ 机器人时代
Discover 点击上面蓝色文字,关注我们
Python 操作Excel文件工作簿,第一件事就是拆表、合并操作,如果仅仅只是一、两个工作簿还好,如果成百上千的文件需要处理,那是累的不行,下面我们就使用Python代码把工作簿拆成若干个表:
import xlwings as xwapp = xw.App(visible=False, add_book=False)fp = '办公用品采购表.xlsx'wb = app.books.open(fp)ws = wb.sheets#根据工作表的数量建立循环for i in ws: #新建一个工作簿 nb = app.books.add() #新建一个工作表 new_ws = nb.sheets[0] #拷贝工作表内容到新表 i.copy(before=new_ws) #保存新工作簿并根据工作表名称进行命名 nb.save('{}.xlsx'.format(i.name)) nb.close()wb.close()app.quit()
运行之后,我们看到目录下生成了很多以原工作簿表名命名的工作簿,是不是很轻松?
光会拆还不行,不能搞成专业的拆迁户,还得会组装起来,下面我们用短短几行代码就可以实现这些功能:
from pathlib import Pathimport pandas as pd#指定要合并的表的文件路径f = Path('test\\')#指定要合并的文件类型f_list = f.glob('*.xls*')#指定生成的总表位置with pd.ExcelWriter('test\\总表.xlsx') as wk: for i in f_list: s_name = i.stem #读取文件内容 data = pd.read_excel(i, sheet_name=0) #写入总表,并将文件名作为表名添加进去 data.to_excel(wk, sheet_name=s_name, index=False)
运行后,我们查看目录,果然生成了一个总表:
很顺利,在实际工作中,我们有时候需要将不同的文件进行归类,我们在test目录下拷贝两个工作簿进来,商品名称.xlsm和情况表.xls,用下面的代码来实现文件分类,看看是否能够成功:
代码如下:
from pathlib import Path#指定程序工作目录f = Path('test\\')#获取目录下扩展名包含xls字符的所有文件名lists = f.glob('*.xls*')#遍历文件for i in lists: #提取工作簿的扩展名 s_name = i.suffix #构造完整路径 new_f = f / s_name #如果以扩展名命名的文件夹不存在 if not new_f.exists(): #创建一个文件夹,以扩展名命名 new_f.mkdir() #将对应的工作簿移动到该目录下 i.replace(new_f / i.name)
除了注释,短短9行代码就搞定一堆表格的分类,如果几千个文件堆在这里,手工处理恐怕难以想象,我们来看看效果:
除了按照文件类型分类,有时候我们需要按照日期来进行分类,例如:
怎么实现呢?很简单,看下面代码:
from time import localtimefrom pathlib import Path#确定工作路径f = Path('工作文件\\')#确定文件格式lists = f.glob('*.xls*')#遍历文件for i in lists: #用路径信息函数stat()获取文件最后的修改时间 itime = i.stat().st_mtime #获取年代 year = localtime(itime).tm_year #获取月份 month = localtime(itime).tm_mon #指定文件存放的路径 new_f = f / str(year) / str(month) #判断文件夹是否存在 if not new_f.exists(): #创建文件夹 new_f.mkdir(parents=True) #操作文件 i.replace(new_f / i.name)
运行后:
Python已经把文件按照年份整理到各个文件夹了,是不是很轻松?如果我们再增加一行代码:day = localtime(itime).tm_mday,甚至可以把文件按照日期几号来归类文件,功能不要太强大。
继续坚持学习,每天都能进步一点!!!
往期回顾:
- 来来来,送你一个金牌销售机器人,7X24小时不休,不要工资免费用!
- 不要嫌你现在的工作很累,可能你离失业不远了!
- 作为旅游行业的一个小老板,我受够了!这是要被淘汰的节奏吗?
本文引用和摘录相关内容,请联系侵删。
- END -
最后,文章有帮助到你的话【点赞在看】
激励我们分享更多的干货!
The End
本站内容搜集自互联网,版权归原作者所有。如有侵权,请来信告知,我们将删除相关内容。