Skip to content

Instantly share code, notes, and snippets.

@me-suzy
Last active May 9, 2024 04:12
Show Gist options
  • Save me-suzy/d00095d20ef72d51ef8be67424ccaea6 to your computer and use it in GitHub Desktop.
Save me-suzy/d00095d20ef72d51ef8be67424ccaea6 to your computer and use it in GitHub Desktop.
Verifica fisierele PDF corupte (cele care nu se pot deschide)
import os
from PyPDF2 import PdfReader
from PyPDF2.errors import PdfReadError
# Directorul unde se află fișierele PDF
directory = "g:/ARHIVA/BCU PDF"
# Lista fișierelor PDF corupte sau care nu se deschid
corrupted_files = []
# Variabilă pentru a ține evidența ultimului fișier parcurs
last_processed_file = None
try:
# Parcurge fiecare director și subfolder în mod recursiv
for root, _, files in os.walk(directory):
for filename in files:
if filename.endswith(".pdf"):
# Calea completă a fișierului PDF
file_path = os.path.join(root, filename)
# Salvează ultimul fișier parcurs
last_processed_file = file_path
# Afișează în timp real fișierul care este parcurs
print(f"Procesând fișierul: {file_path}")
try:
# Încearcă să deschizi fișierul PDF
reader = PdfReader(file_path)
# Verifică dacă documentul are pagini
if len(reader.pages) == 0:
corrupted_files.append(file_path)
except (PdfReadError, ValueError, FileNotFoundError):
# Dacă apare o eroare la deschiderea fișierului PDF, adaugă-l în lista fișierelor corupte
corrupted_files.append(file_path)
except Exception as e:
# În cazul unei excepții, oprește scriptul și afișează mesajul și informațiile dorite
print(f"\nScriptul a fost oprit din cauza unei excepții: {e}")
print(f"Ultimul fișier parcurs: {last_processed_file}")
if corrupted_files:
print("Fișierele PDF corupte sau care nu se pot deschide găsite până acum:")
for file_path in corrupted_files:
print(file_path)
else:
print("Nu au fost găsite fișiere corupte sau care nu se pot deschide până acum.")
# Dacă nu a fost oprită de o excepție, afișează fișierele corupte la final
if corrupted_files:
print("\nUrmătoarele fișiere PDF sunt corupte sau nu se pot deschide:")
for file_path in corrupted_files:
print(file_path)
else:
print("\nToate fișierele PDF din directorul specificat s-au deschis fără probleme.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment