在编程世界里,Python 已经是名副其实的网红了。曾经一个学汉语言的研究生,问我怎么学Python,因为他们课程论文里需要用到文本分析,用 Python 来跑数据。我和他说,你看两天语法,就可以上手开干,不会的再查资料。后来这位同学半个月就用Python把论文数据搞好了。

Python 最大优势在于容易学,门槛比Java、C++低非常多,给非程序员群体提供了用代码干活的可能性。当然 Python 能成为大众编程工具,不光光是因为易学,还因为Python有成千上万的工具包,遍布各行各业。

今天我来分享10几个办公自动化常见的例子,喜欢记得收藏、关注、点赞。

如果小伙伴们需要 Python 相关资料文档、技术交流,可以文末获取

1、Python 处理 Excel 数据

可以使用pandas、xlwings、openpyxl等包来对Excel进行增删改查、格式调整等操作,甚至可以使用Python函数来对excel数据进行分析。

读取excel表格

import xlwings as xw
wb = xw.Book()  # this will create a new workbook
wb = xw.Book('FileName.xlsx')  # connect to a file that is open or in the current working directory
wb = xw.Book(r'C:\path\to\file.xlsx')  # on Windows: use raw strings to escape backslashes

将matplotlib绘图写入excel表格

import matplotlib.pyplot as plt
import xlwings as xwfig = plt.figure()
plt.plot([1, 2, 3])sheet = xw.Book().sheets[0]
sheet.pictures.add(fig, name='MyPlot', update=True)

2、Python处理PDF文本

PDF几乎是最常见的文本格式,很多人有各种处理PDF的需求,比如制作PDF、获取文本、获取图片、获取表格等。Python中有PyPDF、pdfplumber、ReportLab、PyMuPDF等包可以轻松实现这些需求。

提取PDF文字

import PyPDF2pdfFile = open('example.pdf','rb')
pdfReader = PyPDF2.PdfFileReader(pdfFile)
print(pdfReader.numPages)
page = pdfReader.getPage(0)
print(page.extractText())
pdfFile.close()

提取PDF表格

# 提取pdf表格
import pdfplumber
with pdfplumber.open("example.pdf") as pdf:page01 = pdf.pages[0] #指定页码table1 = page01.extract_table()#提取单个表格# table2 = page01.extract_tables()#提取多个表格print(table1)

3、Python 处理Email

在Python中可以使用smtplib配合email库,来实现邮件的自动化传输,非常方便。

import smtplib
import email# 负责将多个对象集合起来
from email.mime.multipart import MIMEMultipart
from email.header import Header# SMTP服务器,这里使用163邮箱
mail_host = "smtp.163.com"
# 发件人邮箱
mail_sender = "******@163.com"
# 邮箱授权码,注意这里不是邮箱密码,如何获取邮箱授权码,请看本文最后教程
mail_license = "********"
# 收件人邮箱,可以为多个收件人
mail_receivers = ["******@qq.com","******@outlook.com"]mm = MIMEMultipart('related')
# 邮件正文内容
body_content = """你好,这是一个测试邮件!"""
# 构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式
message_text = MIMEText(body_content,"plain","utf-8")
# 向MIMEMultipart对象中添加文本对象
mm.attach(message_text)# 创建SMTP对象
stp = smtplib.SMTP()
# 设置发件人邮箱的域名和端口,端口地址为25
stp.connect(mail_host, 25)
# set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
stp.set_debuglevel(1)
# 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码
stp.login(mail_sender,mail_license)
# 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str
stp.sendmail(mail_sender, mail_receivers, mm.as_string())
print("邮件发送成功")
# 关闭SMTP对象
stp.quit()

4、Python 处理数据库

数据库是我们常用的办公应用,Python中有各种数据库驱动接口包,支持对数据库的增删改查、运维管理工作。比如说pymysql包对应MySQL、psycopg2包对应PostgreSQL、pymssql包对应sqlserver、cxoracle包对应Oracle、PyMongo包对应MongoDB等等。

对MySQL的连接查询

import pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',user='testuser',password='test123',database='TESTDB')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute()  方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 关闭数据库连接
db.close()

5、Python 处理批量文件

对很多办公场景来说,批量处理文件一直是个脏活累活,Python可以帮你脱离苦海。Python中有很多处理系统文件的包,比如sys、os、shutil、glob、path.py等等。

批量删除不同文件夹下的同名文件夹

import os,shutil
import sys
import numpy as npdef arrange_file(dir_path0):for dirpath,dirnames,filenames in os.walk(dir_path0):if 'my_result' in dirpath:# print(dirpath)shutil.rmtree(dirpath)

批量修改文件后缀名

import osdef file_rename():path = input("请输入你需要修改的目录(格式如'F:\\test'):")old_suffix = input('请输入你需要修改的后缀(需要加点.):')new_suffix = input('请输入你要改成的后缀(需要加点.):')file_list = os.listdir(path)for file in file_list:old_dir = os.path.join(path, file)print('当前文件:', file)if os.path.isdir(old_dir):continueif old_suffix != os.path.splitext(file)[1]:continuefilename = os.path.splitext(file)[0]new_dir = os.path.join(path, filename + new_suffix)os.rename(old_dir, new_dir)if __name__ == '__main__':file_rename()

6、Python 控制鼠标

这是很多人的需求,实现对鼠标的自动控制,去做一些流水线的工作,比如软件测试。

Python有个pyautogui库可以任意地去控制你的鼠标。

控制鼠标左击/右击/双击函数以及测试源码

# 获取鼠标位置
import pyautogui as pgtry:while True:x, y = pg.position()print(str(x) + " " + str(y))  #输出鼠标位置if 1746 < x < 1800 and 2 < y < 33:pg.click()#左键单击if 1200 < x < 1270 and 600 < y < 620:pg.click(button='right')#右键单击if 1646 < x < 1700 and 2 < y < 33:pg.doubleClick()#左键双击except KeyboardInterrupt:print("\n")

7、Python 控制键盘

同样的,Python也可以通过pyautogui控制键盘。

键盘写入

import pyautogui
#typewrite()无法输入中文内容,中英文混合的只能输入英文
#interval设置文本输入速度,默认值为0
pyautogui.typewrite('你好,world!',interval=0.5)

8、Python 压缩文件

压缩文件是办公中常见的操作,一般压缩会使用压缩软件,需要手动操作。

Python中有很多包支持文件压缩,可以让你自动化压缩或者解压缩本地文件,或者将内存中的分析结果进行打包。比如zipfile、zlib、tarfile等可以实现对.zip、.rar、.7z等压缩文件格式的操作。

压缩文件

import zipfile
try:with zipfile.ZipFile("c://test.zip",mode="w") as f:f.write("c://test.txt")          #写入压缩文件,会把压缩文件中的原有覆盖
except Exception as e:print("异常对象的类型是:%s"%type(e))print("异常对象的内容是:%s"%e)
finally:f.close()

解压文件

import zipfile
try:with zipfile.ZipFile("c://test.zip",mode="a") as f:f.extractall("c://",pwd=b"root") ##将文件解压到指定目录,解压密码为root
except Exception as e:print("异常对象的类型是:%s"%type(e))print("异常对象的内容是:%s"%e)
finally:f.close()

9、Python 爬取网络数据

python爬虫应该是最受欢迎的功能,也是广大Python爱好者们入坑的主要的原因。

Python中有非常多的包支持爬虫,而爬虫包又分为抓取、解析两种。

比如说requests、urllib这种是网络数据请求工具,也就是抓取包;xpath、re、bs4这种会对抓取下来的网页内容进行解析,称为解析包。

爬取百度首页图片,并保存到本地

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 导入urlretrieve函数,用于下载图片
from urllib.request import urlretrieve
# 请求获取HTML
html = urlopen("http://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 只提取logo图片的信息
logo_pic_info = obj.find_all('img',class_="index-logo-src")
# 提取logo图片的链接
logo_url = "https:"+logo_pic_info[0]['src']
# 使用urlretrieve下载图片
urlretrieve(logo_url, 'logo.png')

10、Python 处理图片图表

图片处理、图表可视化涉及到图像处理,这也是Python的强项,现在诸如图像识别、计算机视觉等前沿领域也都会用到Python。

在Python中处理图像的包有scikit Image、PIL、OpenCV等,处理图表的包有matplotlib、plotly、seaborn等。

对图片进行黑白化处理

from PIL import Image
from PIL import ImageEnhanceimg_main = Image.open(u'E:/login1.png')
img_main = img_main.convert('L')
threshold1 = 138
table1 = []
for i in range(256):if i < threshold1:table1.append(0)else:table1.append(1)
img_main = img_main.point(table1, "1")
img_main.save(u'E:/login3.png')

生成统计图表

import numpy as np
import matplotlib.pyplot as pltN = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
menStd = (2, 3, 4, 1, 2)
womenStd = (3, 5, 2, 3, 3)
ind = np.arange(N)    # the x locations for the groups
width = 0.35       # the width of the bars: can also be len(x) sequencep1 = plt.bar(ind, menMeans, width, yerr=menStd)
p2 = plt.bar(ind, womenMeans, width,bottom=menMeans, yerr=womenStd)plt.ylabel('Scores')
plt.title('Scores by group and gender')
plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
plt.yticks(np.arange(0, 81, 10))
plt.legend((p1[0], p2[0]), ('Men', 'Women'))plt.show()

小结

总之Python会成为大众化的编程语言,帮助到更多需要的人。

完整代码、技术交流

目前开通了技术交流群,群友已超过3000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

好用到飞,Python 办公自动化这10个方法真香啊相关推荐

  1. Python办公自动化:10大场景轻松处理,太棒了

    在编程世界里,Python 已经是名副其实的网红了.曾经一个学汉语言的研究生,问我怎么学Python,因为他们课程论文里需要用到文本分析,用Python来跑数据.我和他说,你看两天语法,就可以上手开干 ...

  2. Python办公自动化实战 10 | Python-docx库:Python与Word的完美结合_教你如何管理Word表格中的数据?让你庖丁解牛游刃有余

    一.专题内容简介 本专题主要讲解了怎么删除Word文档中表格中的数据. 二.专题案例效果 三.专题内容 3.1 删除单元格数据 单元格数据的删除从本质上来说同赋值是一样的,只不过赋值为空字符串,即'' ...

  3. Python 办公自动化:让你的工作效率翻番

    **你还把时间浪费在重复工作上吗?**每天都在做着重复的工作,面对无穷无尽的报表- 你希望从每天工作 8 小时,进化成每天工作 10 分钟吗? 如果你天天被繁琐的工作搞得身心俱疲,那么你一定要学习 P ...

  4. layui中table监听单元格_最全总结 | 聊聊 Python 办公自动化之 PPT(中)

    点击上方 "AirPython",选择 "加为星标" 第一时间关注 Python 技术干货! 1. 前言 上一篇文章简单地介绍了 PPT 的文档结构,并使用 p ...

  5. excel 图片转url_最全总结 | 聊聊 Python 办公自动化之 Excel(下)

    聊聊 Python 数据处理全家桶(Memca 篇) 点击上方"AirPython",选择"加为星标" 第一时间关注 Python 技术干货! 1. 前言 前面 ...

  6. python办公自动化博客_最全总结 | 聊聊 Python 办公自动化之 Word(下)

    1. 前言 关于 Word 文档的读写,前面两篇文章分别进行了一次全面的总结 最全总结 | 聊聊 Python 办公自动化之 Word(上) 最全总结 | 聊聊 Python 办公自动化之 Word( ...

  7. Python办公自动化(八)|使用Python转换PDF,Word/Excel/PPT/md/HTML都能转

    Word转PDF Word转PDF应该是最常见的需求了,毕竟使用PDF格式可以更方便展示文档,虽然在Word中可以直接导出为PDF格式,但是使用Python可以批量转换,更加高效. 目前在Python ...

  8. Python办公自动化(一):从Word到Excel

    有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改) 一共有近2600条类似格式的表格细栏,每个栏目包括的信息有: 日期 发文单位 文号 标题 签收栏 需要提取其中加粗的这三项内容到Exc ...

  9. Python 办公自动化:全网最强最详细 PDF 文件操作手册!

    PDF(Portable Document Format)是一种便携文档格式,便于跨操作系统传播文档.PDF文档遵循标准格式,因此存在很多可以操作PDF文档的工具,Python自然也不例外. 而Pyt ...

最新文章

  1. AQS基础——多图详解CLH锁的原理与实现
  2. 用perl访问Oracle
  3. 基于物化视图优化_「PostgreSQL技巧」PostgreSQL中的物化视图与汇总表比较
  4. 手动快捷创建用户和密码
  5. 不同dll相同Type.FullName引发的问题
  6. 用 Python 实现一个大数据搜索引擎
  7. 数据库原理及应用【三】DBMS+SQL
  8. override和overload的小笔记
  9. VGGnet论文解读及代码实现
  10. 世界首富比尔盖茨花钱全过程!
  11. html调用谷歌内核,360浏览器指定Webkit(chrome)内核
  12. 非常详细的 Docker 学习笔记
  13. 新年2021HTML,2021年了,来一段新年快乐的挂件源码
  14. Qt QString to char*
  15. java batik 字体文件_java – 当使用Batik的SVGGraphics2D时,如何设置font-family而不是font?...
  16. java英语apple_apple是什么意思_apple在线翻译_英语_读音_用法_例句_海词词典
  17. 计算机基础-路由器、光猫、交换机、电脑之间的连接关系
  18. 函数式思维: 运用函数式思维,第2 部分
  19. Cesium常用事件,包括点击事件,鼠标事件,相机移动事件
  20. oracle基础|数据库模型|实体-关系图(E-R图)|什么是一对一、一对多、多对多

热门文章

  1. 论文笔记翻译——Nature 综述论文《deep learning》LeCun、Bengio和Hinton
  2. 【调剂】欢迎加入中科院深圳先进技术研究院空间信息中心江老师课题组
  3. 杭州记忆 | 科达为G20做的三件事
  4. Linux下可执行文件指定运行时库(.so文件)路径
  5. cs61b proj0
  6. 应用程序图标设置 系统图标缓存问题
  7. 程序人生 - 维修手机如何避坑?
  8. Android开发艺术探索全面解读
  9. Excel右键删除功能不可用
  10. vs-code 的 源代码管理 不显示项目代码的更改