解决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时出现异常的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。