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).value
      if 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)   #将添加好水印的文件写入空的PDF

f = 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_frame
                print(text_frame.text)

6.win32com库自动化处理

说到win32com,那么首先要知道怎么安装,安装命令如下:

pip install pypiwin32

其实说到这个库,那更加了不得了,win32com 模块可以为 Python 提供调用 windows 底层组件对 word 、Excel、PPT、PDF 等进行操作的功能。

#创建word文件
import win32com
import win32com.client
import os
 
def 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-docxopenpyxl,win32com库进行详细的介绍,敬请期待~哈哈哈哈哈哈~

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yi Ian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值