Comparaison de fichiers (Gestion des données)

Résumé

Compare deux fichiers et renvoie les résultats de comparaison.

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.

  • L'outil Comparaison de fichiers permet de signaler les différences entre deux fichiers ASCII ou deux fichiers binaires.

  • 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
    • "??": un autre outil de masquage est l'association des symboles "??". 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 seul jeton peut avoir un '.' (point) incorporé. Le nom d'un fichier avec une extension est un exemple classique (streetnames.dbf., par exemple). Dans certains exemples, vous pouvez souhaiter qu’une partie du nom, située avant ou après le '.', soit ignorée dans la comparaison du jeton.
      Base: Master table is: streetnames?!.dbf
      Test: Master table is: streetnames
    • "???": cela vous permet de masquer l’intégralité de la ligne qui lui succède.
      Base: ???       8       4       1       0      14      10
      Test:        12      8      2       1      16     12
  • ASCII est le type de fichier par défaut. Si vous saisissez des fichiers binaires, changez le type de fichier sur Binary (Binaire) (BINARY dans Python).

  • 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 binaires 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 Output Compare File (Fichier de comparaison en sortie) contient toutes les similitudes et toutes les différences trouvées entre le Input Base File (Fichier de base en entrée) et le Input Test File (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

arcpy.management.FileCompare(in_base_file, in_test_file, {file_type}, {continue_compare}, {out_compare_file})
ParamètreExplicationType de données
in_base_file

Le Input Base File (Fichier de base en entrée) est comparé au Input Test File (Fichier test en entrée). Le Input Base File (Fichier de base en entrée) désigne un fichier que vous avez déclaré valide. Il offre le contenu et les informations valides.

File
in_test_file

Le Input Test File (Fichier test en entrée) est comparé au Input Base File (Fichier de base en entrée). Le Input Test File (Fichier test en entrée) désigne un 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.

  • ASCIILa comparaison est effectuée à l'aide de caractères ASCII. Il s’agit de l’option par défaut.
  • BINARYEffectue une comparaison binaire.
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.

  • NO_CONTINUE_COMPAREInterrompt la comparaison dès lors qu'une première non-concordance est rencontrée. Il s’agit de l’option par défaut.
  • CONTINUE_COMPAREPoursuit la comparaison des autres propriétés dès lors qu'une première non-concordance est rencontrée.
Boolean
out_compare_file
(Facultatif)

Ce fichier contient toutes les similitudes et différences entre le Input Base File (Fichier de base en entrée) et le Input Test File (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

Sortie dérivée

NomExplicationType de données
compare_status

Le statut de la comparaison est défini sur 'true' si aucune différence n'est trouvée et sur 'false' dans le cas contraire.

Booléen

Exemple de code

Exemple 1 d'utilisation de l'outil FileCompare (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction FileCompare 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 2 d’utilisation de l’outil FileCompare (script autonome)

Exemple d'utilisation de l’outil FileCompare dans un script autonome.

# 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())

Environnements

Cet outil n'utilise pas d’environnement de géotraitement.

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes