Comparar archivos (Gestión de datos)
Resumen
Compara dos archivos y devuelve los resultados de la comparación. Comparar archivos puede informar diferencias entre dos archivos ASCII o dos archivos binarios.
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, seleccione el parámetro Continuar comparación.
-
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 informar un valor de 415,999999999 mientras que la plataforma de Windows XP informa 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 de base existentes, edite los archivos de 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 de 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 es 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 token simple puede tener un "." (punto) incorporado en él. Un ejemplo obvio de esto es el nombre de un archivo con la extensión nombresdecalles.dbf. Puede haber instancias en las que usted quiera que parte del nombre, ya sea antes o después de ".", se ignore en la comparación del token.
Base: Master table is: streetnames?!.dbf Test: Master table is: streetnames
- "???": esto le permite realizar una máscara de la línea completa a continuación.
Base: ??? 8 4 1 0 14 10 Test: 12 8 2 1 16 12
- "#": el símbolo de máscara más simple es el símbolo "#". Siempre que aparezca un # en el archivo de base de entrada, se ignorará el carácter correspondiente en el archivo test de entrada.
-
ASCII es el tipo de archivo predeterminado. Si introduce archivos BINARY, cambie el tipo de archivo a BINARY.
-
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 se haga la comparación errónea de los archivos BINARY, se informará que los tamaños de archivo son distintos y se informará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
Parámetro | Explicación | Tipo de datos |
in_base_file |
El Archivo base de entrada se compara con el Archivo test de entrada. El Archivo base de entrada se refiere al archivo que ha declarado como válido. Este archivo de 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 se refiere al archivo que usted modificó al editar o compilar información nueva. | File |
file_type (Opcional) |
Tipo de archivos que se está comparando.
| String |
continue_compare (Opcional) |
Indica si se deben comparar todas las propiedades después de encontrar la primera falta de coincidencia.
| Boolean |
out_compare_file (Opcional) |
Este archivo contendrá todas las similitudes y las 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 |
Ejemplo de código
La siguiente secuencia de comandos de la ventana de Python demuestra cómo utilizar la función Comparar archivos 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 de cómo utilizar la herramienta Comparar archivos en una secuencia de comandos independiente.
# Name: FileCompare.py # Description: Compare two text files and return comparison result. # Author: ESRI # import system modules import arcpy try: # 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() except: # Print error message if an error occurs print arcpy.GetMessages()