🔜 Inhalt
3.4 Verarbeiten Sie die identifizierten Daten und schreiben Sie sie in eine CSV-Datei
Zusammenfassung
1. Vorwort
Alle Papierdaten werden nach dem Scannen archiviert Mobiltelefon, wenn Sie es verwenden möchten, und sparen Sie Aufwand und Mühe. Den Vorteilen des gescannten Dokuments steht jedoch auch ein Nachteil gegenüber. Da es über ein elektronisches Gerät gescannt wird, ist das Ergebnis ein Bild. Wenn Sie den Inhalt der Datei verarbeiten möchten, ist eine direkte Bedienung nicht möglich.
Was ist, wenn Sie den Inhalt zitieren möchten? Machen Sie sich keine Sorgen, Python hilft Ihnen bei der Lösung des Problems.
2. Anforderungsbeschreibung
Es liegt eine gescannte PDF-Kopie vor. Wir möchten den Text in ein CSV-Dokument in drei Spalten schreiben. Der Inhalt und die Wirkung sind wie folgt:
csvexample
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)
Die PDF-Datei aufteilen In Bilder aufteilen, Text extrahieren und in eine Textdatei schreiben
pdf_path: Der Speicherpfad der PDF-Datei
Bild: Eine Liste von PIL-Bildern, die jede Seite des PDF-Dokuments darstellen
last_page: ermöglicht das Festlegen der letzten Seite, die von pdftoppm verarbeitet werden soll
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)
Lösung: Pler herunterladen . ?? pytesseract.pytesseract.TesseractNotFoundError: Tesseract ist nicht installiert oder befindet sich nicht in Ihrem PATH. Weitere Informationen finden Sie in der README-Datei. Lösung: Laden Sie zusätzlich tesseract herunter und installieren Sie es. ocr und Umgebungsvariablen konfigurieren.
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()
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()
Laufergebnis
Erstellen Sie eine dreispaltige Datei CSV-Datei, die erste Spalte ist der englische Name, die zweite Spalte ist der chinesische Name und die dritte Spalte ist das Land
image-20211215204846623image-20211215204941725
Durch diese Studie haben wir die Notwendigkeit erkannt, Text aus gescannten Dokumenten zu extrahieren und den Inhalt je nach Bedarf in Dokumente in verschiedenen Formaten zu schreiben.
Zuerst dachte ich, dass die Bibliothek zum Extrahieren von PDFs auch für gescannte Dokumente funktionieren würde, also habe ich die Pdfplumber-Bibliothek und die PyPDF2-Bibliothek ausprobiert.
Practice hat festgestellt, dass Pdfplumber nur Wasserzeichen in gescannten PDFs erkennen kann und nicht auf gescannte PDFs anwendbar ist. Die PyPDF2-Bibliothek wird ausgeführt und meldet einen Fehler: NotImplementedError: Nur Algorithmuscode 1 und 2 werden unterstützt.
Der Grund dafür ist, dass dieses verschlüsselte PDF möglicherweise von einer höheren Version von Acrobot stammt, sodass der entsprechende Verschlüsselungsalgorithmus-Code „4“ lautet. Das vorhandene pypdf2-Modul unterstützt jedoch nicht nur die Verschlüsselungsalgorithmus-Codenamen „1“ oder „2“. 'verschlüsselte PDF-Datei.
Das obige ist der detaillierte Inhalt vonPython realisiert die Erkennung, Extraktion und das Schreiben von PD-Texten in die Skriptfreigabe von CSV-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!