平时在公司做数据分析的时候, 也会用python做些办公自动化的工作, 领导昨天说别人3个小时的活我们已经可以3分钟完成了 。 O(∩_∩)O~
本文就给大家介绍几个我用到的办公室自动化技巧:
文章目录 1 Word文档doc转docx 2 文字地址批量转经纬度 3 经纬度计算距离 4 百度经纬度转高德经纬度 5 Excel文件批量合并 6 Word文件批量转pdf 7 批量读取word中表格数据 8 用outlook批量发邮件1 Word文档doc转docx
去年想参赛一个数据比赛, 里面的数据都是doc格式, 想用python-docx 读取word文件中的数据, 但是python-docx只支持docx格式, 所以研究了这两种格式的转换。
1.1 导入工具包
import os from win32com import client as wc 12
1.2 获取文件夹下面所有doc文件明细
# 路径 path="C:/Users/yyz/Desktop/python办公技巧/data/doc转docx/" # 根据自己电脑文件修改 # 定义空list,存放文件绝对路径 files = [] for file in os.listdir(path): if file.endswith(".doc"): files.append(path+file) files 123456789
1.3 转换文件
# 运行word程序 word = wc.Dispatch("Word.Application") # for循环 i = 0 for file in files: try: doc = word.Documents.Open(file) #打开word文件 doc.SaveAs("{}x".format(file), 12) #另存为后缀为".docx"的文件,其中参数12指docx文件 doc.Close() #关闭原来word文件 print(file +':转换成功') i +=1 except: print(file +':转换[不成功]') files.append(file) # 若读取文件报错, 则将文件名称添加到files列表中重新读取 pass print('转换文件%i个'%i) # 退出word word.Quit()
1234567891011121314151617182 文字地址批量转经纬度
工作中地址转经纬度会用在做地图可视化或者计算距离方面。
2.1 导入工具包
# 导入工具包 import pandas as pd import json from urllib.request import urlopen, quote import requests 12345
2.2 定义转换函数
# 定义函数 def getlnglat(address): url = 'http://api.map.baidu.com/geocoding/v3/' output = 'json' ak = "自己申请的api" # 百度地图API, 需要自己申请 address = quote(address) # 由于本文地址变量为中文,为防止乱码,先用quote进行编码 uri = url + '?' + 'address=' + address + '&output=' + output + '&ak=' + ak +'&callback=showLocation%20'+'//GET%E8%AF%B7%E6%B1%82' res=requests.get(uri).text temp = json.loads(res) # 将字符串转化为json lat = temp['result']['location']['lat'] lng = temp['result']['location']['lng'] return lng, lat # 经度 longitude,纬度 latitude, 123456789101112
2.3 地址转换
2.3.1 单个地址转换
# 单个地址转换 getlnglat('北京市朝阳区高碑店地区办事处高井村委会') (116.52784003604923, 39.91806508560947) 123
2.3.2 批量地址转换
# 读取数据 data = pd.read_excel('C:/Users/yyz/Desktop/python办公技巧/data/地址信息.xlsx') data 123
data['经度'