Resumen
Compara dos archivos y devuelve los resultados de la comparación. Compara archivos puede informar de 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, active 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 de 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 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 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 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 pase por alto 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 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 notificarán diferencias tales como que el número total de caracteres es distinto y se indicará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
FileCompare_management (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 recopilar 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 |
Muestra de código
Ejemplo de FileCompare (ventana de Python)
La siguiente secuencia de comandos 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 la herramienta FileCompare (secuencia de comandos independiente)
Ejemplo de cómo utilizar la herramienta FileCompare en una secuencia de comandos independiente.
# Name: FileCompare.py
# Description: Compare two text files and return comparison result.
# 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 Exception as err:
print(err.args[0])
Entornos
Esta herramienta no utiliza ningún entorno de geoprocesamiento.
Información sobre licencias
- ArcGIS Desktop Basic: Sí
- ArcGIS Desktop Standard: Sí
- ArcGIS Desktop Advanced: Sí