Python을 사용하여 PDF에서 텍스트 추출
소개
이 기사에서는 Python을 사용하여
text
에서 PDF
를 추출하는 방법에 대해 설명합니다. 이 작업을 완료하기 위해 PyPDF2 모듈을 사용합니다. PyPDF2
는 분할, 병합, 자르기, 사용자 지정 데이터 추가, 암호화 및 PDF에서 텍스트 검색과 같은 많은 작업을 수행할 수 있는 무료 오픈 소스 Python 라이브러리입니다.PDF 샘플 파일
텍스트를 추출하는 데 사용할 PDF 샘플 파일은 Edgar Allan Poe의 The Raven입니다.
디렉토리 구조
실행 전 디렉토리 구조입니다
script.py
.Python Project/
├── app/
│ ├── script.py
│ ├── the_raven.pdf
│
구현
PDF 열기 및 텍스트 추출
def extract_text_from_pdf(pdf_filename: str) -> str:
text_output = ''
with open(pdf_filename, 'rb') as pdf_object:
pdf_reader = PyPDF2.PdfFileReader(pdf_object)
for i in range(0, pdf_reader.numPages):
page_obj = pdf_reader.getPage(i)
text_output += page_obj.extractText()
return text_output
convert_pdf_to_text()
함수는 텍스트를 추출할 PDF의 파일 이름인 pdf_filename
매개변수를 사용합니다. pdf_filename
는 rb
모드(읽기 위해 이진 형식으로 파일 열기)에서 pdf_object
로 열린 다음 PyPDF2
라는 pdf_reader
개체로 전달됩니다. PyPDF2
함수와 range()
속성을 사용하여 numPages
객체의 모든 페이지를 반복하여 범위 함수의 상한을 정의합니다. page_obj
인스턴스를 만들고 page_object
메서드를 사용하여 각 extractText()
에서 텍스트를 추출합니다. text_output
문자열에 연결하고 결과를 반환합니다. 파일에 텍스트 저장.
def save_converted_text(text_file: str, filename: str) -> None:
with open(filename, 'w+', encoding='utf8') as file_obj:
file_obj.write(text_file)
print(f'{text_file} has been successfully saved.')
save_converted_text()
함수는 PDF에서 추출된 텍스트인 text_file
와 파일을 저장할 이름인 filename
의 두 가지 매개변수를 사용합니다. file name
는 w+
를 'utf8'
로 사용하여 file_obj
모드(쓰기 + 읽기)에서 열립니다. text_file
의 내용은 file_obj
에 기록됩니다. 작업이 성공적으로 실행되면 메시지가 인쇄됩니다. 인코딩이란 무엇입니까?
많은 경우 응용 프로그램은 국제화된 메시지를 사용하여 영어, 프랑스어, 일본어, 히브리어 또는 러시아어와 같은 다양한 사용자 선택 언어로 출력을 표시합니다. 웹 콘텐츠는 이러한 언어로 작성할 수 있으며 다양한 이모티콘 기호를 포함할 수도 있습니다. Python의 문자열 유형은 문자를 나타내는 데
Unicode Standard
를 사용하므로 Python 프로그램이 가능한 모든 문자로 작업할 수 있습니다. 인코딩을 지정하지 않으면 기본적으로 UTF-8
가 사용됩니다. 자세한 내용은 공식 Python 설명서를 참조하십시오encoding.전체 코드
import PyPDF2
# STEP 1: open PDF and convert to text
def extract_text_from_pdf(pdf_filename: str) -> str:
text_output = ''
with open(pdf_filename, 'rb') as pdf_object:
pdf_reader = PyPDF2.PdfFileReader(pdf_object)
for i in range(0, pdf_reader.numPages):
page_obj = pdf_reader.getPage(i)
text_output += page_obj.extractText()
return text_output
# STEP 2: Save Text to File
def save_converted_text(text_file: str, filename: str) -> None:
with open(filename, 'w+', encoding='utf8') as file_obj:
file_obj.write(text_file)
print(f'{text_file} has been successfully saved.')
if __name__ == '__main__':
# extract text from PDF
text_from_pdf = extract_text_from_pdf('the_raven.pdf')
# save extracted text
save_converted_text(text_from_pdf, 'the_raven.txt')
디렉토리 구조
실행 후 디렉토리 구조입니다
script.py
.Python Project/
├── app/
│ ├── script.py
│ ├── the_raven.pdf
│ ├── the_raven.txt
│
결론
이 문서를 읽은 후 이제 Python의 라이브러리
PyPDF2
를 사용하여 PDF에서 텍스트를 추출할 수 있습니다. 텍스트를 추출할 때 인식할 수 없는 텍스트가 나타나면 올바른 문자열 인코딩을 사용하고 있는지 확인하십시오. 이 글이 도움이 되셨다면 like
, follow
, leave a comment
를 눌러주세요!🔗 리소스 링크
Reference
이 문제에 관하여(Python을 사용하여 PDF에서 텍스트 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/seraph776/extract-text-from-pdf-using-python-5flh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)