Comparar archivos (Administración de datos)

Resumen

Compara dos archivos y devuelve los resultados de la comparación.

Uso

  • Esta herramienta devuelve mensajes que muestran el resultado de la comparación. De forma predeterminada, la ejecución se detiene después de encontrar la primera comparación errónea. Para informar de todas las diferencias, active el parámetro Continuar comparación.

  • Comparar archivos puede reportar las diferencias entre dos archivos ASCII o dos archivos binarios

  • Esta herramienta admite la creación de máscaras de caracteres, palabras y líneas de texto en un archivo ASCII. Por ejemplo, los archivos pueden ser idénticos excepto que pueden contener textos que representen la fecha y hora de creación. Por lo tanto, se podría realizar una comparación errónea de los archivos. Además, ocurren pequeñas variaciones en la forma en la que cada plataforma almacena o manipula los números. Esto genera diferencias en la precisión numérica entre las plataformas. La plataforma de SunOS puede reportar un valor de 415,999999999 mientras que la plataforma de Windows XP reporta 416,000000000. Para controlar las comparaciones de caracteres falsos, Comparar archivos ofrece varios recursos para realizar máscaras. Antes de comparar archivos de texto nuevos con archivos base existentes, edite los archivos base para incluir estos símbolos de máscara especiales.

    • "#": el símbolo de máscara más simple es el símbolo "#". Siempre que aparezca un # en el archivo base de entrada, se ignorará el carácter correspondiente en el archivo test de entrada.
      Base: Y delta = 9048.6#
      Test: Y delta = 9048.61
    • "??": otra herramienta de creación de máscaras en la combinación de símbolos "??". Para realizar una máscara completa de una "palabra", agregue "??" al inicio.
      Base: Processing ??ESRI1/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE.DGN
      Test: Processing ESRI2/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE2.DGN
    • "?!": un único token puede tener un "." (punto) incorporado en él. Un ejemplo obvio de esto sería el nombre de un archivo con una extensión: streetnames.dbf. Puede haber casos en los que quiera que parte del nombre, ya sea delante o detrás de ".",se ignore en la comparación del token.
      Base: Master table is: streetnames?!.dbf
      Test: Master table is: streetnames
    • "???": le permite crear una máscara de la línea completa que lo acompaña.
      Base: ???       8       4       1       0      14      10
      Test:        12      8      2       1      16     12
  • ASCII es el tipo de archivo predeterminado. Si introduce archivos binarios, cambie el tipo de archivo a Binario (BINARY en Python).

  • Cuando se haga una comparación errónea con los archivos ASCII, se informarán diferencias tales como que el número total de caracteres es distinto y se informarán las diferencias para cada línea.

  • Cuando la comparación de los archivos binarios sea errónea, se notificará que los tamaños de los archivo son distintos y se indicarán las diferencias para cada byte.

  • El Archivo de comparación de salida contendrá todas las similitudes y diferencias entre el Archivo base de entrada y el Archivo test de entrada. Este archivo es un archivo de texto delimitado por comas que se puede ver y utilizar como una tabla en ArcGIS.

  • Con esta herramienta de Python se puede obtener el estado de la herramienta mediante result.getOutput(1). El valor será 'true' si no se encuentra ninguna diferencia y 'false' si se detecta alguna diferencia.

    Obtenga más información acerca del uso de herramientas en Python

Sintaxis

arcpy.management.FileCompare(in_base_file, in_test_file, {file_type}, {continue_compare}, {out_compare_file})
ParámetroExplicaciónTipo de datos
in_base_file

El Archivo base de entrada se compara con el Archivo test de entrada. El Archivo base de entrada hace referencia al archivo que ha declarado como válido. Este archivo base tiene el contenido y la información correctos.

File
in_test_file

El Archivo test de entrada se compara con el Archivo base de entrada. El Archivo test de entrada hace referencia al archivo que modificó al editar o compilar información nueva.

File
file_type
(Opcional)

Tipo de archivos que se está comparando.

  • ASCIIComparar utilizando caracteres ASCII. Esta es la opción predeterminada.
  • BINARYRealizar una comparación binaria.
String
continue_compare
(Opcional)

Indica si se deben comparar todas las propiedades después de encontrar la primera falta de coincidencia.

  • NO_CONTINUE_COMPARESe detiene después de encontrar la primera falta de coincidencia. Esta es la opción predeterminada.
  • CONTINUE_COMPARECompara otras propiedades después de encontrar la primera falta de coincidencia.
Boolean
out_compare_file
(Opcional)

Este archivo contendrá todas las similitudes y diferencias entre el Archivo base de entrada y el Archivo test de entrada. Este archivo es un archivo de texto delimitado por comas que se puede ver y utilizar como una tabla en ArcGIS.

File

Salida derivada

NombreExplicaciónTipo de datos
compare_status

El estado de comparación será 'true' si no se encuentra ninguna diferencia y 'false' si se detectan diferencias.

Booleano

Muestra de código

Ejemplo 1 de FileCompare (ventana de Python)

El siguiente script de la ventana de Python demuestra cómo utilizar la función FileCompare en el modo inmediato.

import arcpy
arcpy.FileCompare_management(
    r'C:/Workspace/well_xycoordinates.txt', 
    r'C:/Workspace/new_well_coordinates.txt', 'ASCII', 'CONTINUE_COMPARE', 
    r'C:/Workspace/well_file_compare.txt')
Ejemplo 2 de FileCompare (script independiente)

Ejemplo de cómo utilizar la herramienta FileCompare en un script independiente.

# Name: FileCompare.py
# Description: Compare two text files and return comparison result.
# import system modules 
import arcpy
# Set local variables
base_file= "C:/Workspace/well_xycoordinates.txt"
test_file= "C:/Workspace/new_well_coordinates.txt"
file_type = "ASCII"
continue_compare = "CONTINUE_COMPARE"
compare_file = "C:/Workspace/well_file_compare.txt"
# Process: FeatureCompare
compare_result = arcpy.FileCompare_management(base_file, test_features, 
                                              file_type, continue_compare, 
                                              compare_file)
print(compare_result)
print(arcpy.GetMessages())

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados