解決pyPdf和pyPdf2在合并pdf時(shí)出現(xiàn)異常的問題
當(dāng)一個(gè)pdf文件有多page的時(shí)候,它將出來見你!
方法是取直接修改那個(gè)文件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
補(bǔ)充知識(shí):在Python里如何切分中文文本句子(分句)、英文文本分句(切分句子)
在處理文本時(shí),會(huì)遇到需要將文本以 句子 為單位進(jìn)行切分(分句)的場(chǎng)景,而文本又可以分為 中文文本 和 英文文本 ,處理的方法會(huì)略有不同。本文會(huì)介紹 Python 是如何處理 分句 的。
分句的關(guān)鍵是找到合適的結(jié)束符號(hào),比如:中文里的 。,英文里的 . 等,而且,在這一點(diǎn)上中英也是有很大區(qū)分的。
這里介紹一種純用 Python 實(shí)現(xiàn)的分句函數(shù)。
def cut_sentences(content): # 結(jié)束符號(hào),包含中文和英文的 end_flag = ['?', '!', '.', '?', '!', '。', '…'] content_len = len(content) sentences = [] tmp_char = '' for idx, char in enumerate(content): # 拼接字符 tmp_char += char # 判斷是否已經(jīng)到了最后一位 if (idx + 1) == content_len: sentences.append(tmp_char) break # 判斷此字符是否為結(jié)束符號(hào) if char in end_flag: # 再判斷下一個(gè)字符是否為結(jié)束符號(hào),如果不是結(jié)束符號(hào),則切分句子 next_idx = idx + 1 if not content[next_idx] in end_flag: sentences.append(tmp_char) tmp_char = '' return sentences content = '在處理文本時(shí),會(huì)遇到需要將文本以 句子 為單位進(jìn)行切分(分句)的場(chǎng)景,而文本又可以分為 中文文本 和 英文文本 ,處理的方法會(huì)略有不同。本文會(huì)介紹 Python 是如何處理 分句 的。' sentences = cut_sentences(content) print('\n\n'.join(sentences)) 在處理文本時(shí),會(huì)遇到需要將文本以 句子 為單位進(jìn)行切分(分句)的場(chǎng)景,而文本又可以分為 中文文本 和 英文文本 ,處理的方法會(huì)略有不同。 本文會(huì)介紹 Python 是如何處理 分句 的。
這個(gè)函數(shù)可以通過修改 end_flag (結(jié)束符號(hào)),來自定義特定的句子切分方式,比如加入 ; 等符號(hào)。
當(dāng)然,也可以用正則表達(dá)式來完成分句,使用 re.split 的方法。
import re def cut_sentences(content): sentences = re.split(r'(\.|\!|\?|。|!|?|\.{6})', content) return sentences content = content = '在處理文本時(shí),會(huì)遇到需要將文本以 句子 為單位進(jìn)行切分(分句)的場(chǎng)景,而文本又可以分為 中文文本 和 英文文本 ,處理的方法會(huì)略有不同。本文會(huì)介紹 Python 是如何處理 分句 的。' sentences = cut_sentences(content) print('\n\n'.join(sentences)) 在處理文本時(shí),會(huì)遇到需要將文本以 句子 為單位進(jìn)行切分(分句)的場(chǎng)景,而文本又可以分為 中文文本 和 英文文本 ,處理的方法會(huì)略有不同 。 本文會(huì)介紹 Python 是如何處理 分句 的 。
這里還可以安利大家一個(gè)非常不錯(cuò)的處理中文標(biāo)點(diǎn)符號(hào)的第三庫: zhon,可以通過 pip install zhon 安裝,功能也算非常豐富。
我們使用 zhon 來實(shí)現(xiàn)中文分句。
import re import zhon rst = re.findall(zhon.hanzi.sentence, '我買了一輛車。媽媽做的菜,很好吃!') print(rst) ['我買了一輛車。', '媽媽做的菜,很好吃!']
大家可以閱讀 zhon 的官方文檔,了解更多的使用案例。
以上這篇解決pyPdf和pyPdf2在合并pdf時(shí)出現(xiàn)異常的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python使用PyPDF2庫實(shí)現(xiàn)向PDF文件中插入內(nèi)容
- Python利用PyPDF2庫實(shí)現(xiàn)輕松提取PDF文本
- Python使用PyPDF2?Pillow庫來將PDF文件轉(zhuǎn)圖片
- PyPDF2讀取PDF文件內(nèi)容保存到本地TXT實(shí)例
- Python實(shí)現(xiàn)PyPDF2處理PDF文件的方法示例
- Python中使用pypdf2合并、分割、加密pdf文件的代碼詳解
- Python使用pdfplumber庫高效解析PDF文件
- Python利用pdfplumber庫提取pdf中表格數(shù)據(jù)
- python用pdfplumber提取pdf表格數(shù)據(jù)并保存到excel文件中
- Python利用pdfplumber實(shí)現(xiàn)讀取PDF寫入Excel
- python使用PyPDF2 和 pdfplumber操作PDF文件
相關(guān)文章
使用python制作一個(gè)簡(jiǎn)單的井字棋游戲
井字棋(Tic-Tac-Toe)是一種經(jīng)典的兩人棋盤游戲,通常由兩名玩家輪流下棋,目標(biāo)是在一個(gè)3x3的棋盤上先形成橫向、縱向或?qū)蔷€的三個(gè)棋子,本文將介紹如何使用 Python 制作一個(gè)簡(jiǎn)單的井字棋游戲、包括游戲規(guī)則、界面設(shè)計(jì)和實(shí)現(xiàn)代碼,需要的朋友可以參考下2023-11-11淺談Pycharm調(diào)用同級(jí)目錄下的py腳本bug
今天小編就為大家分享一篇淺談Pycharm調(diào)用同級(jí)目錄下的py腳本bug,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12Django中使用極驗(yàn)Geetest滑動(dòng)驗(yàn)證碼過程解析
這篇文章主要介紹了Django中使用極驗(yàn)Geetest滑動(dòng)驗(yàn)證碼過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07python 爬蟲一鍵爬取 淘寶天貓寶貝頁面主圖顏色圖和詳情圖的教程
今天小編就為大家分享一篇python 爬蟲一鍵爬取 淘寶天貓寶貝頁面主圖顏色圖和詳情圖的教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05python 實(shí)現(xiàn)任務(wù)管理清單案例
這篇文章主要介紹了python 實(shí)現(xiàn)任務(wù)管理清單案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04教你用Django將前端的數(shù)據(jù)存入Mysql數(shù)據(jù)庫
這篇文章主要給大家介紹了關(guān)于如何用Django將前端的數(shù)據(jù)存入Mysql數(shù)據(jù)庫的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-11-11