当前位置: 首页 > article >正文

python操作.docx、.pptx文件

python操作.docx、.pptx文件

.docx文件和.pptx文件是Microsoft Office套件中两种常见的文件格式,分别对应Word文档和PowerPoint演示文稿。WPS Office完美支持Microsoft Office文件格式。

使用 Python 操作 .docx 和 .pptx 文件是一项非常实用的技能,尤其在自动化文档生成、报告生成和批量修改演示文稿时非常有用。

要在Python中打开和处理.docx和.pptx文件,你可以使用第三方库。

如何验证是否已安装python-docx库、python-pptx库?

可在 Python 交互式环境中验证,打开 Python 交互式环境(REPL,也称为Python的 shell),然后尝试导入这些库:

import docx

import pptx

如果没有出现错误消息,说明库已经成功安装。

python操作.docx文件

python-docx 是一个用于创建和更新 Microsoft Word (.docx) 文件的 Python 库。它允许你:

创建新的 Word 文档

读取和修改现有文档

添加段落、标题、表格、图片等

安装python-docx库,在cmd中输入如下命令:

pip install python-docx

如果电脑上安装了多个Python版本,你可以为特定版本的Python安装模块(库、包)。例如我的电脑中安装了多个Python版本,要在Python 3.12版本中安装,在cmd中输入如下命令:

py -3.12 -m pip install python-docx

可以使用国内的镜像网站加快安装速度,例如使用清华的镜像,可以在后面添加 -i https://pypi.tuna.tsinghua.edu.cn/simple,如:

py -3.12 -m pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple

【关于安装安装第三方库的更多情况,可参见:https://blog.csdn.net/cnds123/article/details/104393385 】

下面简单介绍python-docx库的基本操作

1)创建新文档

from docx import Document

# 创建一个新的文档
doc = Document()

# 添加标题
doc.add_heading('这是一个标题', level=1)

# 添加段落
doc.add_paragraph('这是一个段落。')
doc.add_paragraph('这是另一个段落。')

# 保存文档
doc.save('示例文档.docx')

 运行后在当前目录中可以找到“示例文档.docx”,打开它,内容参见下图:

特别提示, python-docx的路径处理说明:

指定完整路径可以确保文件被保存在你期望的位置。如果只使用文件名,文件将保存到当前工作目录(文件会保存在 Python 脚本所在目录)。

在 Windows 中,路径包含反斜杠 \,可能需要用双反斜杠 \\ 或前面加 r (原始字符串)来避免转义字符的问题。例如:doc.save(r'D:\path\document.docx')

如果指定路径下已存在同名文件,会直接覆盖现有文件,不会给出警告。例如: doc.save('示例文档.docx') 方法时,如果当前目录下已经存在名为 example.docx 的文件,它将被新文档覆盖,无任何提示。如果你想避免覆盖现有文件,可以在保存之前检查文件是否已经存在。以下是一种简单的实现方法:

import os
from docx import Document

def save_doc_with_no_overwrite(doc, filename):
    if os.path.exists(filename):
        base, extension = os.path.splitext(filename)
        counter = 1
        new_filename = f"{base}_{counter}{extension}"
        while os.path.exists(new_filename):
            counter += 1
            new_filename = f"{base}_{counter}{extension}"
        filename = new_filename
        
    doc.save(filename)
    print(f"文件保存为: {filename}")

# 创建一个新的 Word 文档
doc = Document()
doc.add_heading('文档标题', level=1)
doc.add_paragraph('这是一个段落。')
doc.add_paragraph('这是另一个段落。')

# 尝试保存文档
save_doc_with_no_overwrite(doc, '示例文档.docx')

说明,其中os.path.exists(filename) 用于检查文件是否存在。

如果文件已存在,脚本会增加一个后缀数字 (例如 example_1.docx, example_2.docx),直到找到一个未被使用的文件名保存。

2)读取现有文档

from docx import Document

# 打开现有文档
doc = Document('示例文档.docx')

# 遍历段落
for para in doc.paragraphs:
    print(para.text)

如果你使用 python-docx 尝试打开一个不存在的文档,它将引发异常。因此,为了处理这种情况,你应该使用 try 和 except 块以避免程序崩溃,并能够妥善处理错误。

以下是一个示例,展示如何读取现有 .docx 文件,并处理文件不存在的情况:

import os
from docx import Document

def read_doc(filename):
    #在尝试打开文件之前,可以使用 os.path 模块来验证文件是否存在。
    if os.path.exists(filename):
        try:
            doc = Document(filename)
            # 处理文档,读取文档内容显示
            for para in doc.paragraphs:
                print(para.text)
        except Exception as e:
            print(f"发生错误: {e}")
    else:
        print(f"错误: 文件 '{filename}' 不存在。")

# 尝试读取文档
read_doc('示例文档.docx')

3)修改文档内容

from docx import Document

# 打开文档
doc = Document('示例文档.docx')

# 修改第一个段落
doc.paragraphs[1].text = '这是修改后的段落。'

# 保存修改
doc.save('示例文档.docx')

说明,用doc.paragraphs[i].text= '修改后的内容'时,需要注意,在 python-docx 中,doc.paragraphs [i]是一个包含文档中所有段落的列表,包括标题、正文段落、空行、图片说明、表格标题(但不包括表格内容)、页眉和页脚(如果存在)。它们都被视为"段落"对象。索引 i 从 0 开始。所以 doc.paragraphs[0] 是文档中的第一个段落,doc.paragraphs[1] 是第二个,以此类推。为了更精确地修改文档中的特定部分(如标题或特定段落),需要了解如何区分不同类型的段落。可以通过打印段落的样式名称来确认实际使用的样式:

from docx import Document

# 打开文档
doc = Document('示例文档.docx')

# 打印(显示)段落的样式名称
for para in doc.paragraphs:
    print(para.style.name)

python操作.pptx文件

python-pptx 是一个用于创建和更新 Microsoft PowerPoint (.pptx) 文件的 Python 库。它允许你:

创建新的演示文稿

读取和修改现有演示文稿

添加幻灯片、文本框、图片、图表等

安装python-pptx库,在cmd中输入如下命令:

pip install python-pptx

如果电脑上安装了多个Python版本,你可以为特定版本的Python安装模块(库、包)。例如我的电脑中安装了多个Python版本,要在Python 3.12版本中安装,在cmd中输入如下命令:

py -3.12 -m pip install python-pptx

下面简单介绍python-pptx库基本操作

1)创建新演示文稿

from pptx import Presentation

# 创建一个新的 PowerPoint 演示文稿
ppt = Presentation()

# 添加第一张幻灯片
slide_layout = ppt.slide_layouts[0]  # 选择标题和内容的布局
slide = ppt.slides.add_slide(slide_layout)

# 添加标题和内容
title = slide.shapes.title
content = slide.placeholders[1]

title.text = "演示文稿标题"
content.text = "这是幻灯片的内容。"

# 添加第二张幻灯片
slide = ppt.slides.add_slide(ppt.slide_layouts[1])  # 选择标题只的布局
title = slide.shapes.title
title.text = "第二张幻灯片"

# 正确地引用第二张幻灯片的内容占位符
content = slide.placeholders[1]
content.text = "这第二张是幻灯片的内容。"

# 保存演示文稿
ppt.save('PowerPoint演示文稿.pptx')

运行后在当前目录中可以找到“PowerPoint演示文稿.pptx”,打开它,内容参见下图:

顺便提示,python-pptx 的路径处理方式与 python-docx 非常相似,可参见前面有关部分。

2)读取现有演示文稿

from pptx import Presentation

# 打开现有演示文稿
prs = Presentation('PowerPoint演示文稿.pptx')

# 遍历幻灯片
for i, slide in enumerate(prs.slides):
    print(f"幻灯片 {i+1}:")
    for shape in slide.shapes:
        if hasattr(shape, "text"):
            print(shape.text)

python-docx 官方文档 https://python-docx.readthedocs.io/en/latest/

python-pptx 官方文档 https://python-pptx.readthedocs.io/en/latest/

附录、python操作.xlsx文件

要在 Python 中操作 .xlsx 文件,可以使用 openpyxl 、 pandas 等库。

使用Python的模块openpyxl操作EXCEL https://blog.csdn.net/cnds123/article/details/104280165

使用Python的pandas库操作Excel https://blog.csdn.net/cnds123/article/details/125457620

使用Python的库xlwings操作EXCEL https://blog.csdn.net/cnds123/article/details/114446622


http://www.kler.cn/news/340269.html

相关文章:

  • C++-再探构造函数(进阶)
  • 用户在网页上输入一个网址,它整个页面响应的流程是什么?
  • Koa2项目实战2(路由管理、项目结构优化)
  • 柯桥外语培训韩语学习考级韩语中TOPIK常用语法表达
  • Python Kivy应用程序中的中文乱码问题
  • 『网络游戏』自适应制作登录UI【01】
  • Chapter 2 - 3. Understanding Congestion in Fibre Channel Fabrics
  • 基于springboot vue 学生就业信息管理系统设计与实现
  • SpringBoot实战:设计与实现明星周边电子商务平台
  • vulnhub-Web Developer 1靶机
  • 向量数据库|第1期|从零开始学习
  • Python-Learning
  • 红帽7—Mysql路由部署
  • nginx问题解决-nginx代理数据库端口
  • 力扣34.在排序数组中查找元素的第一个和最后一个位置(二分查找)
  • GAMES104:16 游戏引擎的玩法系统:基础AI-学习笔记
  • 探索Python中的装饰器模式
  • LeetCode 189. Rotate Array 解题思路和python代码
  • 程序传入单片机的过程,以Avrdude为例分析
  • webm格式怎么转换成mp4?值得给你推荐的几种简单方法