解决pyPdf和pyPdf2在合并pdf时出现异常的问题
时间:2022-07-28
本文章向大家介绍解决pyPdf和pyPdf2在合并pdf时出现异常的问题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
当一个pdf文件有多page的时候,它将出来见你!
方法是取直接修改那个文件generic.py
(1) pyPdf
路径大约在这里:
/usr/lib/python2.7/site-packages/pyPdf/generic.py
if data.has_key(key):
# multiple definitions of key not permitted
raise utils.PdfReadError, "multiple definitions in dictionary"
data[key] = value
大约在532–536行
将它修改为:
if not data.get(key):
data[key] = value
(2)pyPdf2
路径大约在:
/usr/lib/python2.7/site-packages/PyPDF2/generic.py
if not data.get(key):
data[key] = value
elif pdf.strict:
# multiple definitions of key not permitted
raise utils.PdfReadError("Multiple definitions in dictionary at byte %s for key %s"
% (utils.hexStr(stream.tell()), key))
修改为:
if not data.get(key):
data[key] = value
补充知识:在Python里如何切分中文文本句子(分句)、英文文本分句(切分句子)
在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。
分句的关键是找到合适的结束符号,比如:中文里的 。,英文里的 . 等,而且,在这一点上中英也是有很大区分的。
这里介绍一种纯用 Python 实现的分句函数。
def cut_sentences(content):
# 结束符号,包含中文和英文的
end_flag = ['?', '!', '.', '?', '!', '。', '…']
content_len = len(content)
sentences = []
tmp_char = ''
for idx, char in enumerate(content):
# 拼接字符
tmp_char += char
# 判断是否已经到了最后一位
if (idx + 1) == content_len:
sentences.append(tmp_char)
break
# 判断此字符是否为结束符号
if char in end_flag:
# 再判断下一个字符是否为结束符号,如果不是结束符号,则切分句子
next_idx = idx + 1
if not content[next_idx] in end_flag:
sentences.append(tmp_char)
tmp_char = ''
return sentences
content = '在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。'
sentences = cut_sentences(content)
print('nn'.join(sentences))
在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。
本文会介绍 Python 是如何处理 分句 的。
这个函数可以通过修改 end_flag (结束符号),来自定义特定的句子切分方式,比如加入 ; 等符号。
当然,也可以用正则表达式来完成分句,使用 re.split 的方法。
import re
def cut_sentences(content):
sentences = re.split(r'(.|!|?|。|!|?|.{6})', content)
return sentences
content = content = '在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。'
sentences = cut_sentences(content)
print('nn'.join(sentences))
在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同
。
本文会介绍 Python 是如何处理 分句 的
。
这里还可以安利大家一个非常不错的处理中文标点符号的第三库: zhon,可以通过 pip install zhon 安装,功能也算非常丰富。
我们使用 zhon 来实现中文分句。
import re
import zhon
rst = re.findall(zhon.hanzi.sentence, '我买了一辆车。妈妈做的菜,很好吃!')
print(rst)
['我买了一辆车。', '妈妈做的菜,很好吃!']
大家可以阅读 zhon 的官方文档,了解更多的使用案例。
以上这篇解决pyPdf和pyPdf2在合并pdf时出现异常的问题就是小编分享给大家的全部内容了,希望能给大家一个参考。
- Haproxy进阶管理:命令行控制后端节点上下线
- 网站集成打字震动特效JS代码改进版
- Linux基础知识之文件隐藏属性
- Linux系统chmod误操作目录权限恢复方法
- 结合VBS,实现批处理自动以管理员身份执行
- ASM 翻译系列第三十六弹:ACFS磁盘组的重平衡操作
- Linux基础知识之xargs命令
- HDU-------(2795)Billboard(线段树区间更新)
- ASM 翻译系列第三十七弹:ASM密码文件目录
- 发现插件生成的robots.txt不能被谷歌和360识别
- Github 年度开源报告:TensorFlow 成最受欢迎深度学习项目
- [持续更新]批处理重命名系列案例
- java学习之协调同步的线程
- 如何确保NFS服务安全
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
- OpenCV 之按位运算举例解析
- Python实时监控网站浏览记录实现过程详解
- php中的buffer缓冲区用法分析
- Python虚拟环境的创建和包下载过程分析
- Django视图、传参和forms验证操作
- Django:使用filter的pk进行多值查询操作
- 如何在keras中添加自己的优化器(如adam等)
- python实现将中文日期转换为数字日期
- PHP中使用CURL发送get/post请求上传图片批处理功能
- django filter过滤器实现显示某个类型指定字段不同值方式
- PHP中使用mpdf 导出PDF文件的实现方法
- PyTorch实现重写/改写Dataset并载入Dataloader
- 详细分析Python垃圾回收机制
- PHP实现用session来实现记录用户登陆信息