Comprobar si dos documentos PDF son idénticos a Python

Python es un lenguaje de programación interpretado y de propósito general. Es un lenguaje de programación orientado a objetos y de paradigmas procedimentales. Hay varios tipos de módulos importados en python como difflib, hashlib.

Módulos utilizados:

  • difflib : Es un módulo que contiene una función que permite comparar conjuntos de datos.
  • SequenceMatcher : se utiliza para comparar un par de secuencias de entrada.

Función utilizada:

  • hash_file ( string $algo , string $filename , bool $binary = false ): Es una función que tiene el hash de un archivo.
  • object.hexdigest(): Es una función que devuelve una string.
  • fileObject.read(size): Es una función que devuelve el número especificado de bytes de un archivo.

Acercarse

  • Módulo de importación
  • Declare una función con 2 argumentos que es para el archivo.
  • Declarar dos objetos para hashlib.sha1()
  • Abrir archivos
  • Lea el archivo dividiendo la línea en partes más pequeñas
  • Ahora devuelva ambos archivos, como h1.hexdigest(), que es de 160 bits.
  • Utilice la función hash_file() para almacenar el hash de un archivo.
  • Comparar y generar el mensaje apropiado

Archivos en uso

comapre pdf 1

Programa:

Python3

import hashlib
from difflib import SequenceMatcher
  
  
def hash_file(fileName1, fileName2):
  
    # Use hashlib to store the hash of a file
    h1 = hashlib.sha1()
    h2 = hashlib.sha1()
  
    with open(fileName1, "rb") as file:
  
        # Use file.read() to read the size of file
        # and read the file in small chunks
        # because we cannot read the large files.
        chunk = 0
        while chunk != b'':
            chunk = file.read(1024)
            h1.update(chunk)
              
    with open(fileName2, "rb") as file:
  
        # Use file.read() to read the size of file a
        # and read the file in small chunks
        # because we cannot read the large files.
        chunk = 0
        while chunk != b'':
            chunk = file.read(1024)
            h2.update(chunk)
  
        # hexdigest() is of 160 bits
        return h1.hexdigest(), h2.hexdigest()
  
  
msg1, msg2 = hash_file("pd1.pdf ", "pd1.pdf")
  
if(msg1 != msg2):
    print("These files are not identical")
else:
    print("These files are identical")

Producción

Estos archivos no son idénticos.

Publicación traducida automáticamente

Artículo escrito por chetanjha888 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *