파이썬을 사용하여 pdf에서 텍스트를 추출하려고합니다. 내 프로그램에서이 기능을 사용하려면 때문에이 파이썬 메서드를 stdout에 쓰는 대신 문자열을 반환하는 방법은 무엇입니까?
kramer65 $ pdf2txt.py myfile.pdf
all the text contents
of the pdf
are printed out here..
, 나는 명령 줄이 아닌 모듈로 사용하려면 다음과 같이이를 위해 나는 pdf2txt.py command line tool를 사용하여 상당히 좋은 일을 pdfminer를 발견 수단. 다음과 같이
#!/usr/bin/env python
import sys
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.converter import TextConverter
from pdfminer.cmapdb import CMapDB
from pdfminer.layout import LAParams
def main(fp):
debug = 0
pagenos = set()
maxpages = 0
imagewriter = None
codec = 'utf-8'
caching = True
laparams = LAParams()
PDFDocument.debug = debug
PDFParser.debug = debug
CMapDB.debug = debug
PDFPageInterpreter.debug = debug
resourceManager = PDFResourceManager(caching=caching)
outfp = sys.stdout
device = TextConverter(resourceManager, outfp, codec=codec, laparams=laparams, imagewriter=imagewriter)
interpreter = PDFPageInterpreter(resourceManager, device)
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, caching=caching, check_extractable=True):
interpreter.process_page(page)
fp.close()
device.close()
outfp.close()
return # Here I want to return the extracted text string
지금 모듈로 호출 할 수 있습니다 : 그래서 다음에 pdf2txt.py 파일 조정 관리
>>> from my_pdf2txt import main
>>> main(open('myfile.pdf', 'rb'))
all the text contents
of the pdf
are printed out here..
을 그것은 현재 sys.stdout.write()
를 사용하여 결과 문자열을 출력을하지만, 사실은 내 코드의 마지막 줄에있는 return
문을 사용하여 문자열을 반환하기를 원합니다. 그러나 그 sys.stdout.write의 사용은 lines 165-167 in converter.py에 깊이 숨겨져 있기 때문에, 나는 stdout에 쓰는 대신에이 문자열을 반환하는 방법을 알지 못합니다.
누구나 어떻게이 방법을 사용하여 stdout에 쓰지 않고 발견 된 문자열을 반환 할 수 있는지 알 수 있습니까? 모든 팁을 환영합니다!
'file' 또는'StringIO'를'stdout'으로 사용할 수 있습니다. 결과를 잡아 돌려 줄 수 있습니다. –