带你走进 @ 机器人时代

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


Python
操作Excel文件的功能也很强大,也许有人会说,直接用鼠标操作不好吗?是的,手动操作也不慢,但是如果重复操作几百遍,或者每天都要操作几十遍,是不是很烦?

打个比方,某个软件每天都会生成数十百个数据报告文件在软件根目录,老板要求你把这些文件重命名,移到一个指定的共享文件夹,让全公司的人都可以分享数据结果。每天操作数百次复制、粘贴、重命名。。。你是否觉得像个机器人?

关键是没有技术含量,让你觉得你就像一个肉做的鼠标

,使用程序自动化处理,可以抽点空学习一下新知识、新技能,为升职加薪打点基础吧。

我们来看一个简单的代码,将程序文件同目录的‘求职申请数据.xslx’文件移动到table目录下,并重新命名为当天的数据记录:

from pathlib import Path import datetime today=datetime.date.today() #选择要移动的文件 old_p = Path('求职申请数据.xlsx') #给出需要移动到的位置和新的文件名 new_p = Path(f'table/{today}求职信息表.xlsx') #执行操作 old_p.rename(new_p)


运行后,我们在table 目录下就可以发现一个带有当天日期的Excel文件:


如果工作需要,我们想得到刚才保存的文件的相关信息,我们该怎么做呢?

import os from pathlib import Path f = Path('2022-12-02求职信息表.xlsx') #绝对路径 jd_path= os.path.abspath(f) #相对路径 p = f.parent #文件名(含扩展名) f_n = f.name #文件名(不含扩展名) s_n = f.stem #文件扩展名 sf_n = f.suffix print(jd_path) print(p) print(f_n) print(s_n) print(sf_n) 输出结果: E:Python程序2022-12-02求职信息表.xlsx . 2022-12-02求职信息表.xlsx 2022-12-02求职信息表 .xlsx


这样,我们可以开始更多复杂的文件操作。如果在自动化的过程中,我们希望机器人自动搜索文件夹目录下的xlsx文件,并打印出来,我们可以使用下面的代码实现:

from pathlib import Path r = Path('F:Excel')#目录路径可替换 list1 = r.glob('*.xls*')#搜索扩展名xlsx文件 lists = []#创建一个列表保存文件名 for i in list1: n = i.name lists.append(n) print(lists) 运行结果: ['1.xlsx', '2.xlsx', '3.xlsx']


如果我们希望创建一个新的工作簿,代码如下:

import xlwings as xw #创建操作对象 app = xw.App(visible=False, add_book=False) w = app.books.add() #命名文件名并保存 w.save('1月销售表.xlsx') #关闭对象 w.close() app.quit()


运行后,在程序文件目录下,我们会得到一个‘1月销售表’的文件,打开:

默认只有一个工作表的Excel文件。如果我们使用循环语句,会得到数个新的工作表,代码如下:

import xlwings as xw app = xw.App(visible=False, add_book=False) for i in range(1, 6): w = app.books.add() w.save(f'学生成绩表{i}.xlsx') w.close() app.quit()


如果需要机器人自动打开工作簿,代码很简单:

import xlwings as xw app = xw.App(visible=True, add_book=False) w = '1月销售表.xlsx' app.books.open(w)

运行后,桌面得到打开的文件:

工作中,我们经常碰到这样的情况,客户发过来的是xls文档,当我们处理完以后生成xlsx文档发给客户,客户却打不开,这时候我们需要进行个数转换,怎么实现呢?

from pathlib import Path import xlwings as xw app = xw.App(visible=False, add_book=False) #定义需要转换的目录 w = Path('F:/') #定义文件格式 l = w.glob('*.xls') #通过循环处理 for i in l: #读取目录下所有的xlsx文件 n_l = str(i.with_suffix('.xlsx')) #打开工作簿 w1 = app.books.open(i) #另存为xls格式# 56代表.xls. 51代表.xlsx w1.api.SaveAs(n_l, FileFormat=51) w1.close() app.quit()


这样就很轻松地实现文件格式的转换,即使成百上千的文件转换也是很快的事情。

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


往期回顾:

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


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

- END -


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