Python八个自动化办公的技巧

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: Python八个自动化办公的技巧

Python八个自动化办公的技巧

这篇文章主要介绍了几个Python自动化办公的技巧,可以大大提高工作效率,例如:Word文档doc转docx、Excel文件批量合并、Word文件批量转pdf等,需要的可以参考一下

目录

导语
1、Word文档doc转docx
1.1 导入工具包
1.2 获取文件夹下面所有doc文件明细
1.3 转换文件
2、文字地址批量转经纬度
2.1 导入工具包
2.2 定义转换函数
2.3 地址转换
3、经纬度计算距离
3.1 导入工具包
3.2 读取数据
3.3 计算距离
4、百度经纬度转高德经纬度
4.1 工具包
4.2 定义函数
4.3 单个转换
4.4 批量转换
5、Excel文件批量合并
5.1 工具包
5.2 获取文件列表
5.3 转换存储数据
6、Word文件批量转pdf
6.1 导入工具包
6.2 单个转换
6.3 批量转换
7、批量读取word中表格数据
7.1工具包安装
7.2 不规范的表格
7.3 规范数据
7.4 批量读取
8 用outlook批量发邮件
8.1 导入工具包
8.2 读取数据
8.3 发送邮件

导语
哈喽吖铁汁萌!今天这期就给大家介绍几个我用到的办公室自动化技巧,可以瞬速提高办公效率。有需要的可以往下滑了

1、Word文档doc转docx
去年想参赛一个数据比赛, 里面的数据都是doc格式, 想用python-docx 读取word文件中的数据, 但是python-docx只支持docx格式, 所以研究了这两种格式的转换。

1.1 导入工具包
1

2

import os

from win32com import client as wc

1.2 获取文件夹下面所有doc文件明细
1

2

3

4

5

6

7

8

9

路径

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

1.3 转换文件
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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

2、文字地址批量转经纬度
工作中地址转经纬度会用在做地图可视化或者计算距离方面。

2.1 导入工具包
1

2

3

4

5

导入工具包

import pandas as pd

import json

from urllib.request import urlopen, quote

import requests

2.2 定义转换函数
1

2

3

4

5

6

7

8

9

10

11

12

定义函数

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,

2.3 地址转换
2.3.1 单个地址转换

1

2

3

单个地址转换

getlnglat('北京市朝阳区高碑店地区办事处高井村委会')

(116.52784003604923, 39.91806508560947)

2.3.2 批量地址转换

1

2

3

读取数据

data = pd.read_excel('C:/Users/yyz/Desktop/python办公技巧/data/地址信息.xlsx')

data

1

2

3

4

5

6

7

8

9

10

data['经度'] = ''

data['纬度'] = ''

for i in range(data.shape[0]):

try:

    data.iloc[i,2] = getlnglat(data.iloc[i,1])[0] # 经度 将第i行,第2列的地址(列索引为1)转换为经纬度,并将经度赋值给第i行,第3列(列索引为2)

    data.iloc[i,3] = getlnglat(data.iloc[i,1])[1] # 纬度

except:

    pass

#print(i)

data

3、经纬度计算距离
安装工具包

1

pip install geopy

3.1 导入工具包
1

from geopy.distance import geodesic

3.2 读取数据
1

2

3

读取数据

data = pd.read_excel('C:/Users/yyz/Desktop/python办公技巧/data/经纬度计算距离.xlsx')

data

3.3 计算距离
1

2

3

4

5

6

7

8

9

10

11

12

13

14

将经纬度赋值给变量,简化

wd1 = data['纬度1'].tolist()

jd1 = data['经度1'].tolist()

wd2 = data['纬度2'].tolist()

jd2 = data['经度2'].tolist()

lis1 = []

for i in range(len(data)):

j= geodesic((wd1[i],jd1[i]), (wd2[i],jd2[i])).km   # 纬度 经度  纬度 经度

lis1.append(j)

#print(i)


data['距离'] = lis1

data

4、百度经纬度转高德经纬度
公司有2个系统,用的坐标系不一样, 有时候需要转换一下

4.1 工具包
1

2

3

导入工具包

import math

import pandas as pd

4.2 定义函数
1

2

3

4

5

6

7

8

9

10

定义转换函数

def bdToGaoDe(lon,lat):

PI = 3.14159265358979324 * 3000.0 / 180.0

x = lon - 0.0065

y = lat - 0.006

z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * PI)

theta = math.atan2(y, x) - 0.000003 * math.cos(x * PI)

lon = z * math.cos(theta)

lat = z * math.sin(theta)

return lon,lat

4.3 单个转换
1

2

3

单个转换

bdToGaoDe(116.512885, 39.847469)

(116.50647396357492, 39.84120409781157)

4.4 批量转换
1

2

3

读取数据

data = pd.read_excel('C:/Users/yyz/Desktop/python办公技巧/data/百度经纬度转高德.xlsx')

data.head()

wd = data['纬度'].tolist()

jd = data['经度'].tolist()

定义一个空列表

li1 = []

for i in range(len(data)):

j  = bdToGaoDe(jd[i],wd[i])

li1.append(j)

 

li1

data['经度_re'] = [i[0] for i in li1]

data['纬度_re'] = [i[1] for i in li1]

data.head()

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
16天前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
53 14
|
20天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
28天前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
12天前
|
Python Windows
Python实现常用办公文件格式转换
本文介绍了如何使用Python及其相关库(如`pandas`、`openpyxl`、`python-docx`等)实现办公文件格式间的转换,包括XLS转XLSX、DOC转DOCX、PPT转PPTX、Word转PDF及PDF转Word,并提供了具体代码示例和注意事项。
141 89
|
6天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
26 7
|
21天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
27 7
|
1月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
96 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
20天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
29 4
|
19天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
1月前
|
开发者 Python
使用Python实现自动化邮件通知:当长时程序运行结束时
本文介绍了如何使用Python实现自动化邮件通知功能,当长时间运行的程序完成后自动发送邮件通知。主要内容包括:项目背景、设置SMTP服务、编写邮件发送函数、连接SMTP服务器、发送邮件及异常处理等步骤。通过这些步骤,可以有效提高工作效率,避免长时间等待程序结果。
61 9