Comparaison de fichiers (Gestion des données)
Récapitulatif
Compare deux fichiers et renvoie les résultats de la comparaison. La comparaison de fichiers peut signaler des différences entre deux fichiers ASCII ou deux fichiers binaires.
Utilisation
-
Cet outil renvoie des messages affichant le résultat de la comparaison. Par défaut, il s'arrête dès qu'il rencontre une première erreur de comparaison. Pour signaler toutes les différences, activez le paramètre Continuer la comparaison.
-
Cet outil prend en charge le masquage de caractères, de mots et de lignes de texte dans un fichier ASCII. Par exemple, des fichiers peuvent être identiques sauf ils peuvent contenir du texte représentant la date et l'heure de création. Par conséquent, ces fichiers produisent une erreur de comparaison. De plus, de petites variations surviennent dans la façon qu'à chaque plate-forme de stocker ou de manipuler les chiffres. Cela produit des différences de précision numérique entre plates-formes. La plate-forme SunOS peut indiquer une valeur de 415,999999999, là où la plate-forme Windows XP indique 416,000000000. Pour gérer les fausses comparaisons de caractère, l'outil Comparaison de fichiers fournit plusieurs fonctions de masquage. Avant de comparer de nouveaux fichiers texte avec les fichiers de base existants, modifiez ces fichiers de base de sorte à inclure ces symboles de masquage spéciaux.
- "#" – Le symbole de masquage le plus simple est le symbole "#". Partout où apparaît un # dans le fichier de base en entrée, le caractère correspondant dans le fichier de test en entrée sera ignoré.
Base: Y delta = 9048.6# Test: Y delta = 9048.61
- "??" – La combinaison de symboles "??" est un autre outil de masquage. Pour masquer un "mot" tout entier, ajoutez "??" au début du mot.
Base: Processing ??ESRI1/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE.DGN Test: Processing ESRI2/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE2.DGN
- "?!" – Un jeton seul peut avoir un '.' (point) incorporé. Le nom d'un fichier avec une extension est un exemple classique (streetnames.dbf., par exemple). Il peut arriver que vous ayez besoin qu'une partie du nom, avant ou après le '.', soit ignorée dans la comparaison du jeton.
Base: Master table is: streetnames?!.dbf Test: Master table is: streetnames
- "???" – Cette combinaison vous permet de masquer la ligne toute entière qui le suit.
Base: ??? 8 4 1 0 14 10 Test: 12 8 2 1 16 12
- "#" – Le symbole de masquage le plus simple est le symbole "#". Partout où apparaît un # dans le fichier de base en entrée, le caractère correspondant dans le fichier de test en entrée sera ignoré.
-
ASCII est le type de fichier par défaut. Lors de l'entrée de fichiers BINARY, modifiez le type de fichier en BINARY.
-
Lorsque des fichiers ASCII produisent une erreur de comparaison, les différences (le nombre total de caractères est différent, par exemple) sont rapportées pour chaque ligne.
-
Lorsque des fichiers BINARY produisent une erreur de comparaison, il est indiqué que les tailles de fichier sont différentes et les différences pour chaque octet sont reportées.
-
Le Fichier de comparaison en sortie contiendra toutes les similitudes et toutes les différences trouvées entre le Fichier de base en entrée et le Fichier test en entrée. Il s'agit d'un fichier texte délimité par des virgules qui peut être visualisé et utilisé comme table dans ArcGIS.
-
Dans Python, vous pouvez obtenir le statut de cet outil à l'aide de la commande result.getOutput(1). La valeur est 'true' si aucune différence n'est trouvée et 'false' dans le cas contraire.
Pour en savoir plus sur l'utilisation des outils dans Python
Syntaxe
Paramètre | Explication | Type de données |
in_base_file |
Le Fichier de base en entrée est comparé au Fichier test en entrée. Le Fichier de base en entrée fait référence au fichier que vous avez déclaré valide. Il offre le contenu et les informations valides. | File |
in_test_file |
Le Fichier test en entrée est comparé au Fichier de base en entrée. Le Fichier test en entrée fait référence au fichier dans lequel vous avez apporté des modifications en mettant à jour ou en compilant de nouvelles informations. | File |
file_type (Facultatif) |
Type des fichiers à comparer.
| String |
continue_compare (Facultatif) |
Indique s'il faut comparer toutes les propriétés dès lors qu'une première erreur de correspondance est rencontrée.
| Boolean |
out_compare_file (Facultatif) |
Ce fichier contiendra toutes les similitudes et toutes les différences trouvées entre le Fichier de base en entrée et le Fichier test en entrée. Il s'agit d'un fichier texte délimité par des virgules qui peut être visualisé et utilisé comme table dans ArcGIS. | File |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction FileCompare dans une table en mode immédiat.
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' )
Exemple d'utilisation de la fonction FileCompare dans un script autonome.
# 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()