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
- "#": 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.
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á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 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.
| 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 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
Nombre | Explicación | Tipo 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
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 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
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí