Python拆装之旅:探索Python的组装与拆卸

博主:ifeinaifeina 01-09 32

带你走进 @ 机器人时代

Discover 点击上面蓝色文字,关注我们

Python拆装之旅:探索Python的组装与拆卸

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

运行之后,我们看到目录下生成了很多以原工作簿表名命名的工作簿,是不是很轻松?

Python拆装之旅:探索Python的组装与拆卸

光会拆还不行,不能搞成专业的拆迁户,还得会组装起来,下面我们用短短几行代码就可以实现这些功能:

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)

运行后,我们查看目录,果然生成了一个总表:

Python拆装之旅:探索Python的组装与拆卸

Python拆装之旅:探索Python的组装与拆卸

很顺利,在实际工作中,我们有时候需要将不同的文件进行归类,我们在test目录下拷贝两个工作簿进来,商品名称.xlsm和情况表.xls,用下面的代码来实现文件分类,看看是否能够成功:

Python拆装之旅:探索Python的组装与拆卸

代码如下:

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行代码就搞定一堆表格的分类,如果几千个文件堆在这里,手工处理恐怕难以想象,我们来看看效果:

Python拆装之旅:探索Python的组装与拆卸

除了按照文件类型分类,有时候我们需要按照日期来进行分类,例如:

Python拆装之旅:探索Python的组装与拆卸

怎么实现呢?很简单,看下面代码:

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拆装之旅:探索Python的组装与拆卸

Python已经把文件按照年份整理到各个文件夹了,是不是很轻松?如果我们再增加一行代码:day = localtime(itime).tm_mday,甚至可以把文件按照日期几号来归类文件,功能不要太强大。

继续坚持学习,每天都能进步一点!!!

往期回顾:

  • 来来来,送你一个金牌销售机器人,7X24小时不休,不要工资免费用!
  • 不要嫌你现在的工作很累,可能你离失业不远了!
  • 作为旅游行业的一个小老板,我受够了!这是要被淘汰的节奏吗?

本文引用和摘录相关内容,请联系侵删。

- END -

最后,文章有帮助到你的话【点赞在看】
激励我们分享更多的干货!

The End

本站内容搜集自互联网,版权归原作者所有。如有侵权,请来信告知,我们将删除相关内容。