1. 서문
2. 요구 사항 설명
3. 두뇌 사용 시작
3.1 관련 타사 패키지 설치
3.2 필요한 타사 라이브러리 가져오기
3.3 PDF 파일 읽기 및 식별 content
3.4 식별된 데이터를 처리하여 csv 파일에 기록합니다.
요약
스캔된 문서는 항상 대중에게 인기가 있었습니다. 모든 종이 데이터는 스캔 후 보관됩니다. 당신이 그것을 사용하고 싶을 때, 노력과 노력을 절약하십시오. 그러나 스캔한 문서의 장점은 전자장치를 통해 스캔되기 때문에 파일에 있는 내용을 처리하려고 하면 직접 작업이 불가능하다는 단점도 있습니다.
내용을 인용하고 싶다면? 걱정하지 마십시오. Python이 문제 해결을 도와줄 것입니다.
텍스트를 추출하여 csv 문서에 3열로 작성하려고 합니다.
pdfexample
csvexample
PDF 스캔은 문서를 컴퓨터 이미지 형식으로 스캔하여 변환하는 것입니다. 따라서 우리의 임무는 PDF를 그림으로 변환한 다음 OCR 도구를 사용하여 그림의 텍스트를 추출하는 것입니다.
pip3 install pdf2image pytesseract
import os #处理文件 from pdf2image import convert_from_path# pdf转图片 import pytesseract# 识别图片文字 import csv# 处理csv文件
tess_ocr(pdf_path, lang, first_page, last_page)
pdf 파일 분할 사진으로 나누고 텍스트를 추출하여 텍스트 파일로 작성합니다
def tess_ocr(pdf_path, lang,first_page,last_page): # 创建一个和pdf同名的文件夹 images = convert_from_path(pdf_path, fmt='png',first_page=first_page,last_page=last_page,output_folder=imagefolder,userpw='site')# 转成图片 text = '' for img in images: text += pytesseract.image_to_string(img, lang=lang) # 识别图片文字 with open(r'exampledata.txt' 'a', encoding='utf-8') as f: #写入txt文件 f.write(text)
분할된 이미지를 저장할 동일한 이름의 폴더를 생성한 후 이미지 텍스트를 추출하여 데이터에 씁니다. .txt
image-20211215212147760
" " 문제 발생 1:
pdf2image.Exceptions.PDFInfoNotInstalledError: 포플러가 설치되어 있고 PATH에 있습니다. "
해결 방법 : pler 다운로드 .
>1 방법 1: 환경 변수 poppler/bin을 설정합니다.
>2 방법 2:
매개변수는 절대 경로를 지정합니다.
images = Convert_from_path(pdf_path=pdf_file_path, poppler_path=r'bin의 주소)
" " 문제 발생 2:
pytesseract.pytesseract.TesseractNotFoundError: tesseract가 설치되지 않았거나 PATH에 없습니다. 자세한 내용은 README 파일을 참조하세요. " "
해결 방법: tesseract를 추가로 다운로드하여 설치하세요. -ocr 및 환경 변수 구성.
수정(infile, outfile)
생성된 텍스트 문서 정리
def modification(infile, outfile): infp = open(infile, "r",encoding='utf-8') outfp = open(outfile, "w",encoding='utf-8') lines = infp.readlines() #返回列表,包含所有的行。 #依次读取每行 for li in lines: if li.split(): #str.split(str="", num=string.count(str)),过滤文件中的空行 # 根据识别情况对数据进行清洗 li = li.replace('[', ' ').replace(']', '') outfp.writelines(li) infp.close() outfp.close()
가 새 txt 파일을 생성합니다. 새 파일은 data.txt의 빈 줄을 삭제하고 원본 파일에서 잘못 인식된 내용을 올바른 파일로 바꿉니다.
writercsv(intxt,outcsv)
텍스트 파일을 csv 테이블에 공백으로 쓰기
def writercsv(intxt,outcsv): # 使用newlines=''可保证存储的数据不空行。 csvFile = open(outcsv, 'a',newline='', encoding='utf-8') writer = csv.writer(csvFile) csvRow = [] f = open(intxt,'r',encoding='utf-8') for line in f: csvRow = line.split() #以空格为分隔符 if len(csvRow)>1 and len(csvRow)<=3:#约束条件,视情况而定 writer.writerow(csvRow) f.close() csvFile.close()
3열 생성 csv 파일에서 첫 번째 열은 영어 이름, 두 번째 열은 중국어 이름, 세 번째 열은 국가
image-20211215204846623
image-20211215204941725
이번 연구를 통해 우리는 스캔한 문서에서 텍스트를 추출하고 필요에 따라 해당 내용을 다양한 형식의 문서에 작성해야 한다는 것을 깨달았습니다.
처음에는 PDF 추출 라이브러리가 스캔된 문서에도 작동할 것이라고 생각하여 Pdfplumber 라이브러리와 PyPDF2 라이브러리를 사용해 보았습니다.
연습 결과 Pdfplumber는 스캔한 PDF의 워터마크만 인식할 수 있으며 스캔한 PDF에는 적합하지 않은 것으로 나타났습니다. PyPDF2 라이브러리가 실행되고 NotImplementedError: 알고리즘 코드 1과 2만 지원됩니다.
이 암호화된 PDF는 상위 버전의 acrobot에서 나올 수 있으므로 해당 암호화 알고리즘 코드는 '4'입니다. 그러나 기존 pypdf2 모듈은 '1' 또는 '2'의 암호화 알고리즘 코드 이름만 지원하는 것은 아닙니다. '암호화된 PDF 파일.
위 내용은 Python은 PD 텍스트 인식, 추출 및 CSV 파일 스크립트 공유로 쓰기를 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!