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
- "#" : 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. 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ètre | Explication | Type 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.
| 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 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
Nom | Explication | Type 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
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 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
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?