1 简介:

在前面几篇博文中已经展示了python的docx库的相关用法,本篇继续学习docx的相关内容。

docx库不仅可以提取word文档中的图片,也可以给文档添加/删除图片。本篇介绍如何添加/删除一张图片到word文档中。

2 添加图片举例:

将一张图片添加到一个word文档中。

思路如下:

1)创建docx:调用docx.Document(doc_name)来实现;

2)添加图片:调用add_picture来实现;

3)保存文件:调用doc.save。

看一下效果图:

其中,最后的图片是通过代码加进去的。

代码:

# -*- coding: utf-8 -*-
import os
import sys
import re
import time
import docx
from docx.shared import RGBColor
from docx.shared import Ptdef fetch_image(doc_path, desc_path):"""抓取word文件中的图片:param doc_path: 文件名称:param desc: 目标路径:return: """doc = docx.Document(doc_path)dict_rel = doc.part._rels #rels其实是个目录for rel in dict_rel:rel = dict_rel[rel]print("rel",rel.target_ref)if "image" in rel.target_ref:# create_dir(desc_path)img_name = re.findall("/(.*)", rel.target_ref)[0]  #windos:/print("img_name",img_name)word_name = os.path.splitext(doc_path)[0]print("word_name",word_name)if os.sep in word_name:new_name = word_name.split('\\')[-1]else:new_name = word_name.split('/')[-1]#图片文件img_name = f'{new_name}_{img_name}'with open(f'{desc_path}/{img_name}', "wb") as f:f.write(rel.target_part.blob)def get_image():"""获取word文档中的图片:param::return: """doc_name = "念奴娇_赤壁怀古.docx"desc_path = sys.argv[1]pwd = os.path.dirname(os.path.abspath(desc_path))print("[get_image]desc_path",desc_path)desc_path = os.path.join(pwd, desc_path) #目标路径fetch_image(doc_name,desc_path)def add_image():"""在weord文档中添加一个图片:param::return: """doc_name = "念奴娇_赤壁怀古_1654065536.139004.docx"doc = docx.Document(doc_name)#添加一个图片doc.add_picture('念奴娇_赤壁怀古_image1.jpg')doc.save('add_image_test.docx')#创建目录
def create_dir(desc_path):if not os.path.exists(desc_path):os.makedirs(desc_path)if __name__ == '__main__':#create_doc()#fetch_doc()#update_doc()#create_doc_table()#fetch_doc_table()#modify_doc_table()#get_image()add_image()

说明:

1) add_image:核心函数,用于打开word文档,并添加一个图片到文件中;

2)add_picture:添加一个图片到doc中;

    doc.add_picture('念奴娇_赤壁怀古_image1.jpg'):添加一张图片

3)保存图片:

       doc.save('add_image_test.docx')

3 删除图片举例:

讲一个word文档中的图片删除

原理:

图片是保存在段落中的,所以我们需要清空有图片的那个段落即可。

参考代码如下:

doc_name = "念奴娇_赤壁怀古_1654065536.139004.docx"
doc = docx.Document(doc_name)
doc.add_paragraph("在下面插入一张图片")
doc.add_picture("01.png")
# 此处是第2个段落有图片
doc.paragraphs[1].clear()
print(doc.inline_shapes)

说明:

1)doc.add_paragraph:添加一个段落到doc中;

2)doc.paragraphs[1].clear(): 将段落清除,即删除。本例中,删除的是下标为1的段落,即图片(本例中,图片所在的段落的下表为1)。

用python操作word文档中的图片,是不是很简单呀!


Python3-word文档操作(九):给word文档添加/删除一张图片-利用docx库相关推荐

  1. Python3-word文档操作(十):利用docx库创建word文档,添加段落,添加表格,添加图片,设置文字粗体,斜体

    1 简介: 作为一个综合例子,本篇主要显示docx库的一些基本操作: 利用docx库创建word文档,添加段落,添加表格,添加图片,设置文字粗体,斜体. 2 举例: 对word文档进行属性的设置,以及 ...

  2. Python3-word文档操作(八):提取word文档中的图片方式一-利用docx库

    1. 简介: 要获取word文档中的图片文件.思路就是先解压,再查找.python中,下面两个库都可以实现这个功能: (1)zip库 (2)docx库 zip库: 上一篇博文已经提过,word本质上也 ...

  3. 【QT】word文档操作实例——根据word模板生成word报表

    文章目录 引言 一.word模板准备 二.WordDemo实现 1.mainwindow.ui 2.mainwindow.h 3.mainwindow.cpp 三.实现效果 引言 在QT5.3中,在. ...

  4. 【Python】生成Word写入数据 -操作Excel、Word、CSV(5)(保姆级图文注释+测试代码+api例程)

    目录 API说明: 1.创建有标题的 Word例程 2. 创建章节和段落 3. 设置字体和引用 4. 创建项目列表 5. 图片和表格 总结 欢迎关注 『Python』 系列,持续更新中 欢迎关注 『P ...

  5. linux 文档操作,Linux学习之文档操作

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? The Linux Command Line 学习翻译 mkdir The mkdir command is used ...

  6. 计算机word保存如何操作,如何保存WORD文档内容???急

    创建"我的公文包"可以基本满足你的要求. [知识链接]出门带好Windows XP"公文包" 如果你经常要笔记本电脑上处理文件,那么结束文件处理时就可以用&qu ...

  7. python写word模板_Python3操作Office之Word模板技术

    在平时工作当中,经常会遇到大部分文字固定不变,小部分内容修改的相关文档.如放假通知.工作日志.工作周报.合同等. 以往都要打开,修改,保存,犹如机械一般的操作,如内容少还可勉强接受,倘若内容多时,反复 ...

  8. python套用word模板_Python3操作Office之Word模板技术

    在平时工作当中,经常会遇到大部分文字固定不变,小部分内容修改的相关文档.如放假通知.工作日志.工作周报.合同等. 以往都要打开,修改,保存,犹如机械一般的操作,如内容少还可勉强接受,倘若内容多时,反复 ...

  9. C++实例(十)Word文档操作

    Word文档操作 一.Word文档的基本操作 打开Word文档 在开发应用程序时,有时需要调用Word文档,如果让用户在磁盘中寻找文档将会很麻烦. 读取Word文档文本内容 在使用程序控制Word文档 ...

最新文章

  1. CSS中的text-shadow。
  2. 王淮经验谈:我的码农原则
  3. Mycat 不适应场景
  4. JS 获取当前页面url(不含参数)
  5. ElasticJob 3.0 带你快速入门
  6. 第一次用vc写的文件切割小软件_CutFile
  7. CUDA11.0+cudnn8.0.5下载安装 2021-04-30
  8. MATLAB之GIF动图的绘制
  9. 基因重组- 冲刺计划
  10. 基于C语言的Q格式使用详解
  11. 【学习】可靠数据传输协议 RDT
  12. V2.0 版本的 《JavaGuide面试突击版》来啦!带着它的在线阅读版本来啦!
  13. 微信h5支付,微信外浏览器支付实现
  14. @Cacheable使用spring缓存
  15. python文件的打开模式有几种_以下选项中,不是Python打开文件模式的是( )_学小易找答案...
  16. ERROR: No Jack server running
  17. 【5 操作系统调度】
  18. 程序员常用的三款在线作图工具
  19. 通过抓包获取QQ空间相册的真实地址,实现空间相册下载。
  20. 深入理解计算机网络-8网络层5

热门文章

  1. Android仿斗鱼滑动登录验证
  2. 锤子代工厂倒闭 老罗的“相声”还好笑吗
  3. 《游戏外挂攻防艺术》学习笔记【一】
  4. 脏读、重复读、幻读;
  5. Android今日头条的适配
  6. ajax使用post函数(通过远程 HTTP POST 请求载入信息)
  7. order by 按照指定顺序排序或自定义顺序排序
  8. java 判断手机访问_java后台如何判断是移动端还是pc端的访问请求
  9. latex安装报错-failed: No such file or directory at G://tlpkg/TeXLive/TLUtils.pm line 1383, <STDIN> line
  10. 【微信小程序】车位在线销售平台(三)