㈠ python Word文档处理 上篇:python-docx
某天我收到一个需求:希望能够用python对word文档进行一些处理,比如更换一些文字以及添加批注。
简单搜索后,我发现 python-docx 是一个处理docx文档的常用python库,因此我打算用它来进行进一步开发。
官方文档 提供了一个简单的示例
python-docx 将文档抽象为document对象、paragraph对象以及run对象,提供了围绕这些对象进行简单处理的API
然而在文档中并没有出现关于批注操作的部分,我在搜寻 一些文章 后发现了在某个 issue 中提及了添加批注相关信息,然而还是没有得到具体的解决办法
docx文档底层是由XML文件组成的
我们可以将一个 xx.docx 文件的后缀名改为 .rar 然后将其手动解压,可以得到下面这些文件
在诸多文件当中主要用到的是 document.xml 文件,这里保存了文档的内容
打开一份 document.xml 文件,抛开header、footer、table以及其他特殊项,去掉样式等修饰项,一份朴素的docx文档主要可以分为三个部分:paragraph、run、text
paragraph即段落,就是我们在word当中看到的一段。text即文本,就是真实的内容。run比较抽象,我们可以将其理解为片段,即语句的切分。
为了更好地理解run是什么,打开一篇word文档定位其中一句话
让我们看看这篇文档解压之后的 document.xml 文件中对应的部分
OK,我们可以看到原本完整的一句话在word中被拆分成了许多个 <w:r> 标签,这就是 run ,word切分 run 的规则很多,有的根据标点符号,有的根据中文分词,句子中如果存在不同样式的字词也会单独切分出来,因此我们很难预估一句话究竟会被分成几个片段。
在issue中搜索comment关键字发现在一个 merge request 上已经给出了添加批注的解决方案,可以通过 paragraph 对象上的 add_comment 方法给一个段落添加批注
但这还是不符合我的需求,我的目标是精准添加到某个词或者短语上
打开 这个贡献者的源码 进行研究
其实就是在P标签内插入comment标签引用,同时添加comment标签到xx文件
同理我们可以在r标签内插入comment标签引用,同时添加comment标签到xx文件,这样就能实现给特定词添加批注的需求了
㈡ 怎么查看Python api文档
Python api文档查看:http://www.apiref.com/python-zh/index.html
㈢ 【Python中常用的库系列】——操作url的模块urlparse 模块
文章目录
一、功能介绍
二、功能介绍
1.`urlparse.urlparse`
2.`urlparse.urlsplit`
3.`urlparse.urljoin`
一、功能介绍
官方文档 :http://docs.python.org/library/urlparse.html
作用:urlparse模块主要是用于解析url中的参数 对url按照一定格式进行 拆分或拼接
注意:urlparse 模块在 python 3.0 中 已经改名为 urllib.parse
二、功能介绍
1.urlparse.urlparse
1.1 获取ParseResult对象
将url分为6个部分,返回一个包含6个字符串的元组:协议、位置、路径、参数、查询、片段。
举例:
import urlparse
url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change
'''
输出结果:
ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')
'''
scheme 是协议
netloc 是域名服务器
path 相对路径
params是参数
query是查询的条件
fragment是片段
1.2获取结果的某一项
import urlparse
url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change.query # opt=1
print url_change.scheme # https
1.3获取结果的某一项,用字典或元组展示
import urlparse
url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print urlparse.parse_qs(url_change.query) # {'opt': ['1']}
print urlparse.parse_qsl(url_change.query) # [('opt', '1')]
2.urlparse.urlsplit
2.1获取SplitResult对象
和urlparse差不多,将url分为5部分,返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段。
import urlparse
url_change = urlparse.urlsplit('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change
'''
输出结果:
SplitResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', query='opt=1', fragment='')
'''
scheme 是协议
netloc 是域名服务器
path 相对路径
query是查询的条件
fragment是片段
2.2获取某一项
print url_change.scheme # https
3.urlparse.urljoin
将相对的地址组合成一个url,对于输入没有限制,开头必须是http://或者https://,否则将不组合前面。
import urlparse
new_url = urlparse.urljoin('https://.com/ssss/','88888')
print new_url
'''
https://.com/ssss/88888
''' 注意 :如果输入错误信息 如 new_url = urlparse.urljoin('122','88888') 并不会将两者合并,而输出后边的链接,即‘88888’
域名放在第一个参数,第二个参数为要和域名拼接的子链接
㈣ python自动化-pdf文档操作
使用第三方库
官方文档:pymupdf.readthedocs.io/en/latest/
提取图片的整体逻辑如下:
将每一页转换为一张张图片
安装pdf2image, github:github.com/Belval/pdf2…
安装:
使用库: github.com/2Dou/waterm…
步骤:
1.获得一个带水印pdf文件
1.1在图片添加水印,图片插入到word,word保存为pdf
1.2python处理:参考
github.com/2Dou/waterm…
mp.weixin.qq.com/s/_oJA6lbsd…
2.将水印pdf文件合并到源目标pdf文件的每一页
法1,直接在word,插入文本框,旋转,设置无边框,注意设置背景透明,然后复制多个。导出为pdf。
法2,word本身自己的增加水印,设计-水印-自定义文字或图片。缺点是只能是单个水印。
缺点是水印在内容pdf上方,如果设置过大,颜色不太透明,会遮挡内容。
解密:并不是破解,而是在已知密码的情况下解密
作者:秦与商
链接:https://juejin.cn/post/7069582991982329893
Python、Java和Web前端都需要相应的编程资料来学习和提高编程能耐余乱力,以下是一些常用的编程资料:
Python编程资料:
《Python编毁运程从入门到实践》
《Python核心编程》
《Python Cookbook》
Python官方文档
Python编程网站(如Python官网、Python教程网等)
Java编程资料:
《Java编程思想》
《Effective Java》
《Head First Java》
Java官方文档
Java编程网站(如Java官网、Java教程网等)
Web前端编程资料:
《JavaScript高级程序设计》
《CSS权威指南》
《HTML5权威指南》
MDN Web文档
Web前端编程网站(昌档如W3School、Bootstrap中文网等)
以上是一些常用的编程资料,但不限于此,还有很多其他的资料可以供大家学习和参考。