Advertisement
nicuf

verifica fisiere PDF corupte (care nu se pot deschide)

May 8th, 2024 (edited)
914
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.27 KB | None | 0 0
  1. import os
  2. from PyPDF2 import PdfReader
  3. from PyPDF2.errors import PdfReadError
  4.  
  5. # Directorul unde se află fișierele PDF
  6. directory = "g:/ARHIVA/BCU PDF"
  7.  
  8. # Lista fișierelor PDF corupte sau care nu se deschid
  9. corrupted_files = []
  10. # Variabilă pentru a ține evidența ultimului fișier parcurs
  11. last_processed_file = None
  12.  
  13. try:
  14.     # Parcurge fiecare director și subfolder în mod recursiv
  15.     for root, _, files in os.walk(directory):
  16.         for filename in files:
  17.             if filename.endswith(".pdf"):
  18.                 # Calea completă a fișierului PDF
  19.                 file_path = os.path.join(root, filename)
  20.                 # Salvează ultimul fișier parcurs
  21.                 last_processed_file = file_path
  22.  
  23.                 # Afișează în timp real fișierul care este parcurs
  24.                 print(f"Procesând fișierul: {file_path}")
  25.  
  26.                 try:
  27.                     # Încearcă să deschizi fișierul PDF
  28.                     reader = PdfReader(file_path)
  29.                     # Verifică dacă documentul are pagini
  30.                     if len(reader.pages) == 0:
  31.                         corrupted_files.append(file_path)
  32.                 except (PdfReadError, ValueError, FileNotFoundError):
  33.                     # Dacă apare o eroare la deschiderea fișierului PDF, adaugă-l în lista fișierelor corupte
  34.                     corrupted_files.append(file_path)
  35.  
  36. except Exception as e:
  37.     # În cazul unei excepții, oprește scriptul și afișează mesajul și informațiile dorite
  38.     print(f"\nScriptul a fost oprit din cauza unei excepții: {e}")
  39.     print(f"Ultimul fișier parcurs: {last_processed_file}")
  40.  
  41.     if corrupted_files:
  42.         print("Fișierele PDF corupte sau care nu se pot deschide găsite până acum:")
  43.         for file_path in corrupted_files:
  44.             print(file_path)
  45.     else:
  46.         print("Nu au fost găsite fișiere corupte sau care nu se pot deschide până acum.")
  47.  
  48. # Dacă nu a fost oprită de o excepție, afișează fișierele corupte la final
  49. if corrupted_files:
  50.     print("\nUrmătoarele fișiere PDF sunt corupte sau nu se pot deschide:")
  51.     for file_path in corrupted_files:
  52.         print(file_path)
  53. else:
  54.     print("\nToate fișierele PDF din directorul specificat s-au deschis fără probleme.")
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement