前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python处理办公自动化的10大场景

Python处理办公自动化的10大场景

作者头像
派大星的数据屋
发布于 2022-07-06 08:36:42
发布于 2022-07-06 08:36:42
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

知乎上有个热门问题,Python 未来会成为大众办公常用编程工具吗?

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

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

举10几个办公自动化常见的例子,Python都能高效处理。

❝如果小伙伴们需要Python办公学习文档,可以在后台回复【c】,领取打包文件。 ❞

1、Python处理Excel数据

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

读取excel表格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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表格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import matplotlib.pyplot as plt
import xlwings as xw

fig = 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文字

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import PyPDF2

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

提取PDF表格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 提取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库,来实现邮件的自动化传输,非常方便。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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的连接查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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等等。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os,shutil
import sys
import numpy as np

def arrange_file(dir_path0):
  for dirpath,dirnames,filenames in os.walk(dir_path0):
    if 'my_result' in dirpath:
      # print(dirpath)
      shutil.rmtree(dirpath)

批量修改文件后缀名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os

def 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):
            continue
        if old_suffix != os.path.splitext(file)[1]:
            continue
        filename = 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库可以任意地去控制你的鼠标。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 获取鼠标位置
import pyautogui as pg

try:
    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控制键盘。

键盘写入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pyautogui
#typewrite()无法输入中文内容,中英文混合的只能输入英文
#interval设置文本输入速度,默认值为0
pyautogui.typewrite('你好,world!',interval=0.5)

8、Python压缩文件

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

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

压缩文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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()

解压文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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这种会对抓取下来的网页内容进行解析,称为解析包。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 导入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等。

对图片进行黑白化处理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from PIL import Image
from PIL import ImageEnhance

img_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')

生成统计图表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import matplotlib.pyplot as plt

N = 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) sequence

p1 = 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会成为大众化的编程语言,帮助到更多需要的人。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Transformer 模型进行时间序列预测的Pytorch代码示例
时间序列预测是一个经久不衰的主题,受自然语言处理领域的成功启发,transformer模型也在时间序列预测有了很大的发展。本文可以作为学习使用Transformer 模型的时间序列预测的一个起点。
deephub
2024/01/29
1.3K1
使用Transformer 模型进行时间序列预测的Pytorch代码示例
【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
论文介绍了一种新的视觉Transformer模型——Swin Transformer,它旨在成为计算机视觉领域的通用骨干网络。Swin Transformer通过其独特的层次化结构和移位窗口(Shifted Windows)机制,解决了传统Transformer在视觉任务中的计算复杂度问题,并在图像分类、目标检测和语义分割等多个任务中取得了优异的性能。
HABuo
2025/03/19
2450
【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
图像恢复SwinIR: Image Restoration Using Swin Transformer
在图像超分辨率、图像去噪、压缩等图像修复(Image restoration)任务中,卷积神经网络目前仍然是主流。但是卷积神经网络有以下两个缺点:
JOYCE_Leo16
2024/03/19
1.2K0
图像恢复SwinIR: Image Restoration Using Swin Transformer
解析 Token to Token Vision Transformer
Vision Transformer!的提出让我们看到了Transformer模型在图像方向的潜力,但其有一些缺点,如需要超大型数据集(JFT)预训练,才能达到现在CNN的精度。本文分析了ViT的一些不合理之处:
BBuf
2021/03/11
7.7K0
带掩码的自编码器MAE详解和Pytorch代码实现
监督学习是训练机器学习模型的传统方法,它在训练时每一个观察到的数据都需要有标注好的标签。如果我们有一种训练机器学习模型的方法不需要收集标签,会怎么样?如果我们从收集的相同数据中提取标签呢?这种类型的学
deephub
2021/12/15
3.7K0
带掩码的自编码器MAE详解和Pytorch代码实现
深度学习应用篇-计算机视觉-图像分类3:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、
相较于VGG的19层和GoogLeNet的22层,ResNet可以提供18、34、50、101、152甚至更多层的网络,同时获得更好的精度。但是为什么要使用更深层次的网络呢?同时,如果只是网络层数的堆叠,那么为什么前人没有获得ResNet一样的成功呢?
汀丶人工智能
2023/06/08
1.9K0
深度学习应用篇-计算机视觉-图像分类3:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、
STF-顶会图像压缩方法
随着视觉应用的日益增多,图像压缩已经成为图像处理领域的一个重要研究课题。传统的图像压缩方法,如JPEG、JPEG2000等,主要依赖于手工设计的规则,虽然这些方法在一定程度上解决了图像存储和传输的问题,但在处理复杂纹理和细节方面存在局限性。近年来,基于卷积神经网络(CNN)的学习型图像压缩方法展示了优越的率失真性能。然而,CNN在捕捉局部冗余和非重复纹理方面仍存在不足,这限制了图像重建质量的进一步提升。
Srlua
2024/12/20
1320
STF-顶会图像压缩方法
【YOLOv8】YOLOv8改进系列(1)----替换主干网络之EfficientViT(CVPR2023)
EfficientViT:作者是来自香港中文大学和微软研究院的研究团队。论文的主要内容是提出了一种新型的高效视觉变换器(Vision Transformer,简称ViT)模型,这种模型旨在解决传统ViT在计算成本高、不适合实时应用的问题。
HABuo
2025/02/20
3270
【YOLOv8】YOLOv8改进系列(1)----替换主干网络之EfficientViT(CVPR2023)
mmdetection之DETR注释详解
本文记录 mmdetection 对 DETR 训练的流程,包括标签获取,transformer encoder&decoder,前向训练,以及各步骤中 tensor 的形状,仅供复习用处。mmdetection 版本为 2.11.0。
棒棒鸡不棒
2022/09/02
1.9K1
ChatGLM2 源码解析:`ChatGLMModel`
ApacheCN_飞龙
2023/10/13
5420
ChatGLM2 源码解析:`ChatGLMModel`
preprint版本 | 何凯明大神新作MAE | CVPR2022最佳论文候选
本文证明了蒙面自动编码器(MAE)是一种可扩展的计算机视觉自监督学习器。我们的MAE方法很简单:我们屏蔽输入图像的随机补丁并重建丢失的像素。
机器学习炼丹术
2021/12/06
1.3K0
preprint版本 | 何凯明大神新作MAE | CVPR2022最佳论文候选
Transformers 4.37 中文文档(九十三)
Pix2Struct 模型是由 Kenton Lee, Mandar Joshi, Iulia Turc, Hexiang Hu, Fangyu Liu, Julian Eisenschlos, Urvashi Khandelwal, Peter Shaw, Ming-Wei Chang, Kristina Toutanova 在《Pix2Struct: Screenshot Parsing as Pretraining for Visual Language Understanding》中提出的。
ApacheCN_飞龙
2024/06/26
3310
Transformers 4.37 中文文档(九十三)
解密Prompt系列8. 无需训练让LLM支持超长输入:知识库 & Unlimiformer & PCW & NBCE
这一章我们聊聊有哪些方案可以不用微调直接让大模型支持超长文本输入,注意这里主要针对无限输入场景。之前在BERT系列中我们就介绍过稀疏注意力和片段递归的一些长文本建模方案长文本建模 BigBird & Longformer & Reformer & Performer,不过以上方案无一例外都需要在训练阶段引入。针对当前大模型微调成本高的问题,更多研究放到如何在模型外部支持长文本输入。先讨论下为啥当前的大模型会在推理时存在输入长度的限制,主要有以下几点原因
风雨中的小七
2023/06/12
6K0
解密Prompt系列8. 无需训练让LLM支持超长输入:知识库 & Unlimiformer & PCW & NBCE
【图像分类】Vision Transformer理论解读+实践测试
Vision Transformer是2021年谷歌在ICLR上提出的算法,算法原理并不复杂,但是其价值是开创性的。它首次将NLP领域火热的Transformer模型架构移植到了CV领域,打破了这两个领域壁垒,并取得不错的成效。
zstar
2022/09/20
2.9K0
【图像分类】Vision Transformer理论解读+实践测试
Transformers 4.37 中文文档(七十七)
SeamlessM4T-v2 模型是由 Meta AI 的 Seamless Communication 团队在Seamless: Multilingual Expressive and Streaming Speech Translation中提出的。
ApacheCN_飞龙
2024/06/26
2980
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
基于Transformer的体系结构在自然语言处理(NLP)领域取得了巨大的成功。受Transformer在语言领域的巨大成功的启发,Vision Transformer被提出,并在ImageNet数据集上取得了优秀的性能。Vision Transformer就像NLP中的word token一样,将图像分割成patches并输入Transformer之中,并通过Transformer的几个multi-head self-attention层来建立远程依赖关系。
集智书童公众号
2022/02/11
9660
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
FAST-VQA(论文复现)
现实世界视频分辨率的提高对于深度视频质量评估(VQA)在效率与准确性之间提出了一个难题。一方面,保持原始分辨率将导致不可接受的计算成本。另一方面,现有的实践方法,如图像缩放和裁剪,会因为细节和内容的丢失而改变原始视频的质量,因此对质量评估是有害的。通过对人类视觉系统中的时空冗余以及视觉编码理论的研究,我们观察到,一个邻域周围的质量信息通常是相似的,这促使我们研究一种有效的、对质量敏感的邻域表征方案用于VQA。在这项工作中,我们提出了一种统一的方案,即时空网格小立方体采样(St-GMS),以获得一种新型样本,我们称之为片段。首先将全分辨率视频按照预设的时空网格划分为小型立方体,然后对齐时间上的质量代表进行采样,以组成用于VQA的片段。此外,我们设计了一个专门为片段量身定制的网络架构,即片段注意力网络(FANet)。利用片段和FANet,所提出的效率端到端的FAST-VQA和FasterVQA在所有VQA基准测试上的性能显著优于现有方法,同时仅需要1/1612的FLOPs,相较于当前最先进技术大幅降低。
Srlua
2024/11/30
1610
FAST-VQA(论文复现)
ChatGLM3 源码解析(一)
ApacheCN_飞龙
2024/03/05
5800
alphaFold2 | 模型细节之特征提取(三)
文章链接: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8371605/
机器学习炼丹术
2022/11/22
1.1K0
alphaFold2 | 模型细节之特征提取(三)
Transformers 4.37 中文文档(七十八)
Speech2Text2 模型与 Wav2Vec2 一起用于大规模自监督和半监督学习的语音翻译中提出的语音翻译模型,作者为 Changhan Wang,Anne Wu,Juan Pino,Alexei Baevski,Michael Auli,Alexis Conneau。
ApacheCN_飞龙
2024/06/26
2320
推荐阅读
相关推荐
使用Transformer 模型进行时间序列预测的Pytorch代码示例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验