Python | método filecmp.cmpfiles()

El módulo Filecmp en Python proporciona funciones para comparar archivos y directorios. Este módulo se incluye en los módulos de utilidad estándar de Python. Este módulo también considera las propiedades de los archivos y directorios para la comparación además de los datos en ellos.
El método filecmp.cmpfiles() en Python se usa para comparar archivos en dos directorios. Se pueden comparar varios archivos con este método. Este método devuelve tres listas de nombres de archivo, a saber, coincidencia, falta de coincidencia y errores. La lista de coincidencias contiene la lista de archivos que coincidieron en la comparación, la lista de discrepancias contiene los nombres de los archivos que no coinciden y la lista de errores contiene los nombres de los archivos que no se pudieron comparar.
Este método de forma predeterminada realiza una comparación superficial (por defecto, superficial = Verdadero), lo que significa que solo os.stat()se comparan las firmas (como el tamaño, la fecha de modificación, etc.) de los archivos y, si tienen firmas idénticas, los archivos se consideran iguales independientemente del contenido de los archivos. Si superficial se establece en Falso, la comparación se realiza comparando el contenido de los archivos. 
 

Sintaxis: filecmp.cmpfiles(dir1, dir2, común, superficial = True) 
Parámetro:  
dir1 : La ruta del primer directorio. Puede ser una string, bytes u objeto os.PathLike que representa la ruta del directorio. 
dir2 : La ruta del segundo directorio. Puede ser una string, bytes u objeto os.PathLike que representa la ruta del directorio. 
common : una lista que representa los nombres de los archivos que se compararán en dir1 y dir2. 
superficial (opcional): un valor booleano ‘Verdadero’ o ‘Falso’. El valor predeterminado de este parámetro es True. Si su valor es True, solo se comparan los metadatos de los archivos. Si es False, se comparan los contenidos de los archivos.
Tipo de devolución:Este método devuelve una tupla de tres listas que representa listas de coincidencias, discrepancias y errores. 
 

Por ejemplo:
 

filecmp.cmpfiles(dir1, dir2, [file1, file2, fil3]) comparará dir1/file1 con dir2/file1 , dir1/file2 con dir2/file2 y dir1/file3 con dir2/file3 y devolverá la lista de coincidencias, discrepancias y errores . 
 

Ejemplo: Uso del método filecmp.cmpfiles() para comparar archivos en dos directorios.
 

Python3

# Python program to explain filecmp.cmpfiles() method
   
# importing filecmp module
import filecmp
 
# Path of first directory
dir1 = "/home / User / Documents"
 
# Path of second directory
dir2 = "/home / User / Desktop"
  
# Common files
common = ["file1.txt", "file2.txt", "file3.txt"]
 
# Shallow compare the files
# common in both directories 
match, mismatch, errors = filecmp.cmpfiles(dir1, dir2, common)
 
# Print the result of
# shallow comparison
print("Shallow comparison:")
print("Match :", match)
print("Mismatch :", mismatch)
print("Errors :", errors, "\n")
 
 
# Compare the
# contents of both files
# (i.e deep comparison)
match, mismatch, errors = filecmp.cmpfiles(dir1, dir2, common,
                                              shallow = False)
 
# Print the result of
# deep comparison
print("Deep comparison:")
print("Match :", match)
print("Mismatch :", mismatch)
print("Errors :", errors)
Producción: 

Shallow comparison:
Match : ['file1.txt', 'file2.txt', 'file3.txt']
Mismatch : []
Errors : []  

Deep comparison:
Match : ['file1.txt', 'file2.txt']
Mismatch : ['file3.txt']
Errors : []

 

Publicación traducida automáticamente

Artículo escrito por ihritik 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 *