Python3-word文档操作(九):给word文档添加/删除一张图片-利用docx库
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库相关推荐
- Python3-word文档操作(十):利用docx库创建word文档,添加段落,添加表格,添加图片,设置文字粗体,斜体
1 简介: 作为一个综合例子,本篇主要显示docx库的一些基本操作: 利用docx库创建word文档,添加段落,添加表格,添加图片,设置文字粗体,斜体. 2 举例: 对word文档进行属性的设置,以及 ...
- Python3-word文档操作(八):提取word文档中的图片方式一-利用docx库
1. 简介: 要获取word文档中的图片文件.思路就是先解压,再查找.python中,下面两个库都可以实现这个功能: (1)zip库 (2)docx库 zip库: 上一篇博文已经提过,word本质上也 ...
- 【QT】word文档操作实例——根据word模板生成word报表
文章目录 引言 一.word模板准备 二.WordDemo实现 1.mainwindow.ui 2.mainwindow.h 3.mainwindow.cpp 三.实现效果 引言 在QT5.3中,在. ...
- 【Python】生成Word写入数据 -操作Excel、Word、CSV(5)(保姆级图文注释+测试代码+api例程)
目录 API说明: 1.创建有标题的 Word例程 2. 创建章节和段落 3. 设置字体和引用 4. 创建项目列表 5. 图片和表格 总结 欢迎关注 『Python』 系列,持续更新中 欢迎关注 『P ...
- linux 文档操作,Linux学习之文档操作
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? The Linux Command Line 学习翻译 mkdir The mkdir command is used ...
- 计算机word保存如何操作,如何保存WORD文档内容???急
创建"我的公文包"可以基本满足你的要求. [知识链接]出门带好Windows XP"公文包" 如果你经常要笔记本电脑上处理文件,那么结束文件处理时就可以用&qu ...
- python写word模板_Python3操作Office之Word模板技术
在平时工作当中,经常会遇到大部分文字固定不变,小部分内容修改的相关文档.如放假通知.工作日志.工作周报.合同等. 以往都要打开,修改,保存,犹如机械一般的操作,如内容少还可勉强接受,倘若内容多时,反复 ...
- python套用word模板_Python3操作Office之Word模板技术
在平时工作当中,经常会遇到大部分文字固定不变,小部分内容修改的相关文档.如放假通知.工作日志.工作周报.合同等. 以往都要打开,修改,保存,犹如机械一般的操作,如内容少还可勉强接受,倘若内容多时,反复 ...
- C++实例(十)Word文档操作
Word文档操作 一.Word文档的基本操作 打开Word文档 在开发应用程序时,有时需要调用Word文档,如果让用户在磁盘中寻找文档将会很麻烦. 读取Word文档文本内容 在使用程序控制Word文档 ...
最新文章
- CSS中的text-shadow。
- 王淮经验谈:我的码农原则
- Mycat 不适应场景
- JS 获取当前页面url(不含参数)
- ElasticJob 3.0 带你快速入门
- 第一次用vc写的文件切割小软件_CutFile
- CUDA11.0+cudnn8.0.5下载安装 2021-04-30
- MATLAB之GIF动图的绘制
- 基因重组- 冲刺计划
- 基于C语言的Q格式使用详解
- 【学习】可靠数据传输协议 RDT
- V2.0 版本的 《JavaGuide面试突击版》来啦!带着它的在线阅读版本来啦!
- 微信h5支付,微信外浏览器支付实现
- @Cacheable使用spring缓存
- python文件的打开模式有几种_以下选项中,不是Python打开文件模式的是( )_学小易找答案...
- ERROR: No Jack server running
- 【5 操作系统调度】
- 程序员常用的三款在线作图工具
- 通过抓包获取QQ空间相册的真实地址,实现空间相册下载。
- 深入理解计算机网络-8网络层5
热门文章
- Android仿斗鱼滑动登录验证
- 锤子代工厂倒闭 老罗的“相声”还好笑吗
- 《游戏外挂攻防艺术》学习笔记【一】
- 脏读、重复读、幻读;
- Android今日头条的适配
- ajax使用post函数(通过远程 HTTP POST 请求载入信息)
- order by 按照指定顺序排序或自定义顺序排序
- java 判断手机访问_java后台如何判断是移动端还是pc端的访问请求
- latex安装报错-failed: No such file or directory at G://tlpkg/TeXLive/TLUtils.pm line 1383, <STDIN> line
- 【微信小程序】车位在线销售平台(三)