2016-07-22 57 views
0

我已經使用pdfminer將複雜(表格,圖形)和非常長的pdf轉換爲html。我想進一步解析結果(例如提取表格,段落等),然後使用nltk中的句子標記器做進一步的分析。爲此,我想將html保存爲文本文件以找出如何執行解析。不幸的是我的代碼不會寫HTML爲TXT:將html標籤寫入python中的文本文件

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
from pdfminer.converter import HTMLConverter 
from pdfminer.converter import TextConverter 
from pdfminer.layout import LAParams 
from pdfminer.pdfpage import PDFPage 
from cStringIO import StringIO 


def convert_pdf_to_html(path): 
    rsrcmgr = PDFResourceManager() 
    retstr = StringIO() 
    codec = 'utf-8' 
    laparams = LAParams() 
    device = HTMLConverter(rsrcmgr, retstr, codec=codec, laparams=laparams) 
    fp = file(path, 'rb') 
    interpreter = PDFPageInterpreter(rsrcmgr, device) 
    password = "" 
    maxpages = 0 #is for all 
    caching = True 
    pagenos=set() 
    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True): 
     interpreter.process_page(page) 
    fp.close() 
    device.close() 
    str1 = retstr.getvalue() 
    retstr.close() 
    return str1 
    with open("D:/my_new_file.txt", "wb") as fh: 
     fh.write(str1) 

此外,代碼打印在shell整個HTML字符串:我怎樣才能避免呢?

+0

@讓·弗朗索瓦·法布爾謝謝!你是對的,現在它工作正常。 – In777

回答

0

首先,除非有一個微不足道的錯誤,

中的.txt寫回功能後會發生:從不執行txt文件寫!

然後,以抑制輸出到控制檯,只是做你運行程序之前:

import sys,os 
oldstdout = sys.stdout # save to be able to restore it later 
sys.stdout = os.devnull 
相關問題