Python extraction texte
Résolu
Icemansuperced
Messages postés
96
Statut
Membre
-
Icemansuperced Messages postés 96 Statut Membre -
Icemansuperced Messages postés 96 Statut Membre -
Bonjour,
J'ai un problème avec un de mes scripts en Python. J'ai plusieurs PDF qui contiennent des prénoms et noms, et je tente de renommer les PDF en fonction de ces derniers. J'ai une liste des noms et prénoms censés apparaître dans les PDF pour faciliter la recherche, mais malheureusement, cela ne fonctionne pas. J'ai utilisé pytesseract et pymupdf. Auriez-vous d'autres bibliothèques à me suggérer (j'ai essayé avec pdfminer/pdfplumber, mais cela n'a pas fonctionné) ?
voici mon code:
import os
import pandas as pd
import fitz
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:\Users\cedrik.sia\AppData\Local\Programs\Tesseract-OCR\tesseract.exe'
applicants_file = r'C:\Users\cedrik.si\applicants.xlsx'
applicants_df = pd.read_excel(applicants_file)
applicants_df['FullName'] = applicants_df['FirstName'] + ' ' + applicants_df['LastName']
applicant_names = set(applicants_df['FullName'].tolist() + applicants_df['FirstName'].tolist() + applicants_df['LastName'].tolist())
def ocr_image(image):
""" Tesseract OCR."""
text = pytesseract.image_to_string(image, lang='eng')
return text
def extract_text_from_first_page(pdf_path):
"""PyMuPDF et OCR."""
try:
doc = fitz.open(pdf_path)
page = doc.load_page(20)
pix = page.get_pixmap()
image = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
text = ocr_image(image)
return text
except Exception as e:
print(f"NA extract {pdf_path}: {e}")
return ""
def rename_pdf_with_applicant_name(pdf_path):
try:
text = extract_text_from_first_page(pdf_path)
if not text.strip():
print(f"NA extract{pdf_path}")
return
print(f"extraction de {pdf_path}:\n{text[:10000]}...")
lines = text.split('\n')
applicant_name = None
for line in lines:
for name in applicant_names:
if name in line:
applicant_name = name
break
if applicant_name:
break
if applicant_name:
new_pdf_path = os.path.join(os.path.dirname(pdf_path), f"{applicant_name}.pdf")
os.rename(pdf_path, new_pdf_path)
print(f"Rename : {pdf_path} -> {new_pdf_path}")
else:
print(f"Nom de l'appliquant introuvable {pdf_path}")
except Exception as e:
print(f"Erreur process {pdf_path}. Détails: {e}")
pdf_directory = r'C:\Users\cedrik.si\OneDrive \AutomateDownload_GDBOX2'
for filename in os.listdir(pdf_directory):
if filename.lower().endswith('.pdf'):
pdf_path = os.path.join(pdf_directory, filename)
rename_pdf_with_applicant_name(pdf_path)
Windows / Edge 126.0.0.0
modération : utiliser l'icone code pour les sources. Attention le terme "pix " étant bloqué par le robot CCM, le placer dans un message supprime automatiquement tout le message.
A voir également:
- Python extraction texte
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Citizen code python - Accueil - Outils
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Texte barré whatsapp - Guide