日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python实战-pdf文件转txt

發布時間:2024/4/11 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实战-pdf文件转txt 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景:最近剛好需要將一個pdf的內容打出來,這是個比較枯燥的內容,而且pdf里面的文字明顯是規范的,所以想寫個腳本讀取內容,直接復制粘貼。剛好,python的理念就是不重復造輪子,這樣的包自然是有的,這個腳本最主要的包就是pdfminer3k。

1.思路

解析出文檔,按頁存儲進txt文件即可。

2.完整代碼

from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LTTextBoxHorizontal, LAParams from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.pdfinterp import PDFTextExtractionNotAllowed from pdfminer.pdfparser import PDFParser, PDFDocumentdef parse_pdf(filepath):# 創建文件流fp = open(filepath, 'rb')# 從文件中獲取數據,得到一個解析對象parser = PDFParser(fp)# 連接文檔和分析器pdoc = PDFDocument()parser.set_document(pdoc)pdoc.set_parser(parser)# 沒有密碼,初始化密碼為空pdoc.initialize()# 檢測文檔是否提供文本提取if not pdoc.is_extractable:raise PDFTextExtractionNotAllowedelse:# 創建PDf資源管理器對象來管理共享資源,catching=False表示不緩存pm = PDFResourceManager(caching=False)# 創建一個PDF參數分析器laparams = LAParams()# 創建頁面聚合對象device = PDFPageAggregator(pm, laparams=laparams)# 創建一個PDF解析器對象interpreter = PDFPageInterpreter(pm, device)# 獲取page列表pages = pdoc.get_pages()# 循環遍歷page列表,按頁處理for page in pages:# 使用頁面解釋器來讀取interpreter.process_page(page)# 使用聚合器獲取內容layout = device.get_result()# 這里layout是一個LTPage對象 里面存放著解析出的各種對象for item in layout:# 獲取文本if isinstance(item, LTTextBoxHorizontal):rst = item.get_text()with open("test.txt", 'a', encoding='utf-8') as f:f.write(rst)if __name__ == '__main__':filepath = 'test.pdf'parse_pdf(filepath)

3.錯誤可能

我在寫腳本時遇到了一個問題,這個問題還比較常見。

?pdfminer.pdfparser.PDFEncryptionError: Unknown algorithm: param={'CF': {'StdCF': {'AuthEvent': /DocOpen, 'CFM': /V2, 'Length':16}},'Filter':/Standard,'Length':128,'O':b':\r\x18\xf4\xe7i\x1ca\x80\xc9UqX\xdb\xdf\xa4\xaa\x0e\x80J,Xqra\xac\xe8\r\xf1\xb94\xf5','P':-3392,'R':4,'StmF':/StdCF,'StrF':/StdCF,'U':b'\xbc7/j\xc4\xc2)\xe6g\xebX\xc2\x81\x10n\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'V': 4}

這段錯誤的原因主要是默認現在的pdf文件就算你打開就能看,但是其實還是設置了一個空密碼,而pdfminer3k是不認的,它認為就算需要密碼,這里可以隨便找個在線網站處理一下空密碼解鎖pdf文件。

其實這樣的空密碼加密表面上對讀者沒有影響,但是其實是為了防止復制粘貼而已。

4.源文件

5. 運行結果

?

總結

以上是生活随笔為你收集整理的python实战-pdf文件转txt的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。