带你走进 @ 机器人时代
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 -
最后,文章有帮助到你的话【点赞在看】
激励我们分享更多的干货!