解决pyPdf和pyPdf2在合并pdf时出现异常的问题
当一个pdf文件有多page的时候,它将出来见你!
方法是取直接修改那个文件generic.py
(1)pyPdf
路径大约在这里:
/usr/lib/python2.7/site-packages/pyPdf/generic.py
ifdata.has_key(key): #multipledefinitionsofkeynotpermitted raiseutils.PdfReadError,"multipledefinitionsindictionary" data[key]=value
大约在532--536行
将它修改为:
ifnotdata.get(key): data[key]=value
(2)pyPdf2
路径大约在:
/usr/lib/python2.7/site-packages/PyPDF2/generic.py
ifnotdata.get(key): data[key]=value elifpdf.strict: #multipledefinitionsofkeynotpermitted raiseutils.PdfReadError("Multipledefinitionsindictionaryatbyte%sforkey%s"\ %(utils.hexStr(stream.tell()),key))
修改为:
ifnotdata.get(key): data[key]=value
补充知识:在Python里如何切分中文文本句子(分句)、英文文本分句(切分句子)
在处理文本时,会遇到需要将文本以句子为单位进行切分(分句)的场景,而文本又可以分为中文文本和英文文本,处理的方法会略有不同。本文会介绍Python是如何处理分句的。
分句的关键是找到合适的结束符号,比如:中文里的。,英文里的.等,而且,在这一点上中英也是有很大区分的。
这里介绍一种纯用Python实现的分句函数。
defcut_sentences(content): #结束符号,包含中文和英文的 end_flag=['?','!','.','?','!','。','…'] content_len=len(content) sentences=[] tmp_char='' foridx,charinenumerate(content): #拼接字符 tmp_char+=char #判断是否已经到了最后一位 if(idx+1)==content_len: sentences.append(tmp_char) break #判断此字符是否为结束符号 ifcharinend_flag: #再判断下一个字符是否为结束符号,如果不是结束符号,则切分句子 next_idx=idx+1 ifnotcontent[next_idx]inend_flag: sentences.append(tmp_char) tmp_char='' returnsentences content='在处理文本时,会遇到需要将文本以句子为单位进行切分(分句)的场景,而文本又可以分为中文文本和英文文本,处理的方法会略有不同。本文会介绍Python是如何处理分句的。' sentences=cut_sentences(content) print('\n\n'.join(sentences)) 在处理文本时,会遇到需要将文本以句子为单位进行切分(分句)的场景,而文本又可以分为中文文本和英文文本,处理的方法会略有不同。 本文会介绍Python是如何处理分句的。
这个函数可以通过修改end_flag(结束符号),来自定义特定的句子切分方式,比如加入;等符号。
当然,也可以用正则表达式来完成分句,使用re.split的方法。
importre defcut_sentences(content): sentences=re.split(r'(\.|\!|\?|。|!|?|\.{6})',content) returnsentences content=content='在处理文本时,会遇到需要将文本以句子为单位进行切分(分句)的场景,而文本又可以分为中文文本和英文文本,处理的方法会略有不同。本文会介绍Python是如何处理分句的。' sentences=cut_sentences(content) print('\n\n'.join(sentences)) 在处理文本时,会遇到需要将文本以句子为单位进行切分(分句)的场景,而文本又可以分为中文文本和英文文本,处理的方法会略有不同 。 本文会介绍Python是如何处理分句的 。
这里还可以安利大家一个非常不错的处理中文标点符号的第三库:zhon,可以通过pipinstallzhon安装,功能也算非常丰富。
我们使用zhon来实现中文分句。
importre importzhon rst=re.findall(zhon.hanzi.sentence,'我买了一辆车。妈妈做的菜,很好吃!') print(rst) ['我买了一辆车。','妈妈做的菜,很好吃!']
大家可以阅读zhon的官方文档,了解更多的使用案例。
以上这篇解决pyPdf和pyPdf2在合并pdf时出现异常的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。