python对办公文档处理
对于经常处理文件的人来说,应该经常使用offic或者wps这样的文件处理工具吧。那么我们可以使用python对办公文档处理吗?答案肯定是可以的,哈哈哈哈哈~ 在python中我们有Pillow,xlrd,xlwt,python-docx,openpyxl,win32com等这些办公自动化的库,废话不多说直接开始吧,哈哈哈哈哈~
1.Pillow库进行图像文件处理
说到Pillow,那么首先要知道怎么安装,安装命令如下:
pip install pillow
Pillow是Python图像处理库PIL发展出来的一个分支,他主要完成图像压缩和图像处理两方面功能需求:
图像归档:对图像进行批处理、生成图像预览、图像格式转换等
图像处理:图像基本处理、像素处理、颜色处理等
其实Pillow最为重要的一个类是Image类,读取和处理图像都可以通过该类来完成。下面简单该类的一些常用方法和属性:
方法 | 描述 |
Image.open(filename) | 加载图像文件 |
Image.new(mode, size, color) | 创建一个新的图像 |
Image.open(StringIO.StringIO(buff)) | 从字符串中获取图像 |
Image.frombytes(mode, size, data) | 根据像素点data创建图像 |
Image.verify() | 检查图像文件的完整性 |
Image.save(filename, format) | 保存图像,filename文件名,format图片格式 |
Image.convert(mode) | 把图像转换为需要的模式 |
Image.thumbnail(size) | 创建图像压缩图,size为压缩图的大小 |
Image.resize(size) | 根据size大小生成图像副本 |
Image.rotate(angle) | 根据angle角度旋转图像,返回副本 |
Image.point( func) |
根据func函数对每个像素进行运算,返回副本 |
Image.split() | 提取RGB图像的每个颜色通道,返回副本 |
Image.merge(mode, bands) | 合并通道,采用mode色彩,bands为新的颜色通道 |
Image.crop(left, up, right, below) | 对图像进行切割 |
Image.show() | 图像显示 |
Image.paste(img2,box=none,mask=none) | 把img2图像粘贴在Image图像中的box位置 |
Image.transpose(rotate) | 转置图像 |
属性 | 描述 |
Image.format |
标识图像格式或者来源,非文件读取,值为None |
Image.mode | 图像色彩模式,“L"灰度,”RGB“真彩色,”CMYK“出版图像 |
Image.size | 图像的宽和高,单位为像素(px),返回值是二元元组(tuple) |
说到这里可能有小伙伴就会问,那有没有其他类呢?哈哈哈哈~当然有啦~ 比如要对图像进行过滤或者增强的需求的,那么PIL库中提供了ImageFilter类和ImageEnhance类,这两个类可以调整色彩度,亮度,对比度,锐化等功能,下面给出常用方法:
方法 | 描述 |
ImageEnhance.enhance(factor) | 对选择属性增强factor倍 |
ImageEnhance.Color(m) | 调整图像的颜色平衡 |
ImageEnhance.Contrast(m) | 调整图像的对比度 |
ImageEnhance.Brightness(m) | 调整图像的亮度 |
ImageEnhance.Sharoness(m) | 调整图像的锐度 |
ImageFilter.BLUR | 图像模糊效果 |
ImageFilter.CONTOUR | 图像轮廓效果 |
ImageFilter.DETAIL | 图像细化效果 |
ImageFilter.EDGE_ENHANCE | 图像边界加强效果 |
ImageFilter.EDGE_ENHANCE_MORE | 图像阈值边界加强效果 |
ImageFilter.EMBOSS | 图像浮雕效果 |
ImageFilter.FIND_EDGES | 图像边界效果 |
ImageFilter.SMOOTH | 图像平滑效果 |
ImageFilter.SMOOTH_MORE | 图像阈值平滑效果 |
ImageFilter.SHARPEN | 图像锐化效果 |
上面说了那么的方法,那么怎么使用呢? 哈哈哈哈~废话不多说,直接举例子:
#图片处理
from PIL import Image
from PIL import ImageFilter
from PIL import ImageEnhance
img = Image.open("1.jpg")
print(img.format) # 输出图片基本信息
print(img.mode)
print(img.size)
img_resize = img.resize((256,256)) # 调整尺寸
img_resize.save("resize1.jpg")
img_rotate = img.rotate(45) # 旋转
img_rotate.save("rotate1.jpg")
om=img.convert('L') # 灰度处理
om.save('gray1.jpg')
om = img.filter(ImageFilter.CONTOUR) # 图片的轮廓
om.save('contour1.jpg')
om = ImageEnhance.Contrast(img).enhance(10) # 对比度为初始的10倍
om.save('gencontrast1.jpg')
om.transpose(Image.FLIP_LEFT_RIGHT).show()
om.thumbnail(128, 128).show()
2.openpyxl库对Excel表格的自动化处理
说到openpyxl,那么首先要知道怎么安装,安装命令如下:
pip install openpyxl
openpyxl模块主要是让我们可以在python程序中轻松的读取和修改Excel表格的数据,下面举个例子:
#读取excel表格数据
from openpyxl.reader.excel import workbook
def readXlsxFile(path):file = workbook(filename=path)print(file.get_sheet_names)sheets = file.get_sheet_names()sheet = file.get_sheet_by_name(sheets[0])for lineNum in range(1, sheet.max_row + 1):lineList = []print(sheet.max_row, sheet.max_column)for columnNum in range(1, sheet.max_column + 1):# 拿数据value = sheet.cell(row=lineNum,column=columnNum).valueif value != None:lineList.append(value)print(lineList)path = "1.xlsx"
readXlsxFile(path)
由于openpyxl库比较重要,而且内容比较多,所以这里只做简单的介绍,后面会有单独的文章详细介绍它,哈哈哈哈哈~
3.Python-docx库对Word的自动化处理
说到Python-docx,那么首先要知道怎么安装,安装命令如下:
pip install python-docx
但安装时有可能出现下图的错误:
那么我们可以通过卸载 pip uninstall lxml,之后安装>pip install lxml==3.7.3,即可修复,如图:
利用python-docx模块,Python可以创建和修改Word文档,它允许你通过插入文本、填写表格并将图像自动渲染到报告中来自动生成文档。代码如下:
import docx
doc = docx.Document('/home/abel/test.docx')
paras = doc.paragraphs
text_in_doc =[]
for each_p in paras:text_in_doc.append(each_p.text)
4.PyPDF2库对 PDF的自动化处理
说到PyPDF2,那么首先要知道怎么安装,安装命令如下:
pip install PyPDF2
利用PyPDF2库,我们能够拆分、合并、裁剪和转换 PDF 文件的页面;还可以向 PDF 文件添加自定义数据、查看选项和密码;可以从 PDF 中检索文本和元数据,也可以将整个文件合并在一起。
#PDF添加水印练习
import PyPDF2
# 打开需要添加水印的PDF
reader1 = PyPDF2.PdfFileReader('1.pdf')
# 准备水印文件
reader2 = PyPDF2.PdfFileReader('2.pdf')
# 获取水印文件
walter_page = reader2.getPage(0)
# 准备空PDF用来存放新的PDF
new_pdf = PyPDF2.PdfFileWriter()for page_num in range(reader1.getNumPages()):page = reader1.getPage(page_num) #依次获取每页内容page.mergePage(walter_page) #为每一页添加水印new_pdf.addPage(page) #将添加好水印的文件写入空的PDFf = open('32.pdf','wb') #保存
new_pdf.write(f)
5.python-pptx库对 pptx的自动化处理
说到python-pptx,那么首先要知道怎么安装,安装命令如下:
pip install python-pptx
python-pptx 是一个用于创建和更新 PowerPoint (.pptx) 文件的 Python 库。通过它我们可以让数据库内容生成自定义 PowerPoint 演示文稿。
# 获取某一页Slide中的内容
from pptx import PPT
prs = PPT('1.pptx')
for i, slide in enumerate(prs.slides):if i == 4:for shape in slide.shapes:if shape.has_text_frame:text_frame = shape.text_frameprint(text_frame.text)
6.win32com库自动化处理
说到win32com,那么首先要知道怎么安装,安装命令如下:
pip install pypiwin32
其实说到这个库,那更加了不得了,win32com 模块可以为 Python 提供调用 windows 底层组件对 word 、Excel、PPT、PDF 等进行操作的功能。
#创建word文件
import win32com
import win32com.client
import osdef makeWordFile(path, name):word = win32com.client.Dispatch("Word.Application")# 让文档可见word.Visible = True# 创建文档doc = word.Documents.Add()# 写内容从头开始写r = doc.Range(0, 0)r.InsertAfter("你好," + name + "\n")r.InsertAfter("python\n")# 存储文件doc.SaveAs(path)doc.Close()word.Quit()names = ["张三", "李四"]
for name in names:path = os.path.join(os.getcwd(), name)makeWordFile(path, name)
总结
其实说了那么多,其实本章只是对办公文档处理所用的库简单的介绍一下,因为每个库的内容都比较多而且重要。所以后面会有相关的章节对 python-docx,openpyxl,win32com库进行详细的介绍,敬请期待~哈哈哈哈哈哈~
python对办公文档处理相关推荐
- 【阅读3.8w,收藏2000次】97页《Python自动化办公文档》,让您的 “办公效率” 提高100倍,拿走即用!
大家可以叫我黄同学(博客名:数据分析与统计学之美,公众号:数据分析与统计学之美),一个应用统计硕士,爱好写一些技术博客,志在用通俗易懂的写作风格,帮助大家学到知识,学好知识! 1. 文档简介 < ...
- Python-100-Days学习系列之15.图像和办公文档处理
Python-100-Days学习 图像和办公文档处理 操作图像 1.颜色 如果你有使用颜料画画的经历,那么一定知道混合红.黄.蓝三种颜料可以得到其他的颜色,事实上这三种颜色就是被我们称为美术三原色的 ...
- 办公文档加密,企业文档加密,强制性透明加密技术,fasoft
随着企事业单位的快速发展,文档以电子文档方式为企事业单位承载着越来越多重要的信息.而由于电子文档的容易散播性,导致企事业单位在外发给客户或合作伙伴的重要资料,都可能会在这交互的过程中被篡改.无序传播等 ...
- 【githubshare】开源的文件文档在线预览项目,支持主流办公文档的在线预览,如 doc、docx、Excel、pdf、txt、zip、rar、 图片等
GitHub 上一份硬核计算机科学 CS 自学计划,偏向软件工程和系统架构方向. 旨在帮助开发者制定一个为期 3-5 年的重学 CS 目标,夯实 CS 基本功,达到美国一流大学 CS 专业本科毕业水平 ...
- 办公技巧:如何快速提取办公文档里面的所有图片
针对一个比较大的办公文档里面有很多图片,有些时候我们需要提取文档里面的所有图片信息,当然你打开文档一个个复制保存就可以了,不过这样太过于繁琐了,有没有更加快速的方法呢?今天给大家分享快速提取办公文档里 ...
- 处理办公文档通过共享打印机无法打印
问题:office或者其他办公文档,想通过共享打印机打印则出现办公文档软件无响向,或无打印记录(适用于域共享打印机) 解决方法 卸载2021-10-1-18的全部windows10的更新(亲测可效)
- 办公文档被误删如何用EasyRecovery恢复
大家在使用办公软件时,是否常常会出现误删文档或未及时保存导致文件丢失的情况?不用担心,有了EasyRecovery强大的文档恢复功能,大家就能轻松找回丢失的文档!下面就跟随小编看看EasyRecove ...
- 一个针对现代办公文档中错别字的解决方案:JcJc 错别字在线检查
一个针对现代办公文档中错别字的解决方案:JcJc 错别字在线检查 在社会学研究中,白领职业通常指四个职业群体:管理者群体.专业技术群体.经营销售人员群体和普通办公室职员群体. 这以上 4 个群体中, ...
- 2021上海企业办公文档加密软件怎么选?
已进入信息化时代,"信息的保护"."数据的保护"等名词已成为人们生活和工作中占据非常重要的位置.信息保护问题也是日益突出,众多企业对信息保护的重视也是非常的高. ...
最新文章
- 关于Zend framework 里一段代码的疑问
- oracle数据库建表视频,Oracle数据库的创建表全
- 古风一棵桃花树简笔画_运用仿真树装饰效果如此浪漫
- Nginx详解(正向代理、反向代理、负载均衡原理)
- spring mvc 自定义编辑器
- RK3568开发笔记-buildroot移远EC20模块调试记录
- php 去除 bom,php 去除文件BOM头的方法
- 视频教程-金蝶K3 WISE 视频教程-ERP
- linux用独显运行steam,linux N卡 steam启动失败解决方案 (32位 库缺失)
- 从基础接口工具postman开始夯实软件测试基础(一)
- [渗透]缓慢的HTTP拒绝服务攻击原理、利用和防范
- LCD 液晶显示器 ---------- LTDC 控制器
- Firefox设置谷粉搜搜为默认搜索引擎的方法
- 本地搭建自己的电影网站,并发布公网访问 1-3
- 微信小程序中使用阿里矢量字体图标
- R语言神经网络量化交易模型
- java netty wss_netty 配置 wss访问
- 济源一中2021高考成绩查询入口,喜讯!高考刷新济源最高纪录!
- ZZNUOJ_用C语言编写程序实现1217:统计立方数(附完整源码)
- 使用微软云人工智能,合成带感情的语音
热门文章
- 计算机系统英语参考文献短,英文计算机类论文参考文献 英文计算机论文参考文献哪里找...
- 程序员工作三年月薪不过万,遭其他人疯狂吐槽,为何还不辞职?
- 浅谈城市综合管廊分类及其运维管理-Susie 周
- 华为od机考真题-能量消耗
- html像pho传递表单信息,表单剧本
- vs2017 vs2019 打开cs文件提示无法识别的GUID格式
- 以我所能,为你而加 —— 新一代音视频融合通信平台全接触
- linux ps le hrtime,Linux 高精度定时器hrtimers简单介绍和应用场景
- android系统默认值的设置
- 【Netcore】This can either be due to a cycle or if the object depth is larger than the maximum allowed