Zusammenfassung
Vergleicht zwei Dateien und gibt die Vergleichsergebnisse zurück. Mit "Dateivergleich" können die Unterschiede zwischen zwei ASCII-Dateien oder zwei Binärdateien in einem Bericht ausgegeben werden.
Verwendung
Mit diesem Werkzeug werden Meldungen mit den Vergleichsergebnissen zurückgegeben. Standardmäßig wird die Ausführung nach dem Auffinden des ersten Übereinstimmungsfehlers beendet. Sollen alle Abweichungen in den Bericht aufgenommen werden, aktivieren Sie den Parameter Vergleich fortsetzen.
Dieses Werkzeug unterstützt die Maskierung von Zeichen, Wörtern und Textzeilen in einer ASCII-Datei. So können die Dateien beispielsweise identisch sein bis auf die Tatsache, dass sie Text mit dem Datum und der Uhrzeit der Erstellung enthalten. Somit würde ein Übereinstimmungsfehler gemeldet. Außerdem treten kleine Abweichungen auf, die darauf beruhen, dass bei den verschiedenen Plattformen Zahlen unterschiedlich gespeichert oder bearbeitet werden. Dies führt zwischen den Plattformen zu Abweichungen bei der Zahlengenauigkeit. So meldet die SunOS-Plattform möglicherweise den Wert 415,999999999, während Windows XP 416,000000000 meldet. Für den Umgang mit falschen Zeichenvergleichen bietet "Dateivergleich" verschiedene Maskierungsfunktionen. Bearbeiten Sie vor dem Vergleich neuer Textdateien mit vorhandenen Basisdateien die Basisdateien, um diese Maskierungssymbole hinzuzufügen.
- "#" – Das einfachste Maskierungssymbol ist das Symbol "#". An allen Stellen, an denen in der Eingabe-Basisdatei ein "#" erscheint, wird das dazugehörige Zeichen in der Eingabe-Testdatei ignoriert.
Base: Y delta = 9048.6# Test: Y delta = 9048.61
- "??" – Ein weiteres Maskierungswerkzeug ist die Symbolkombination "??". Zur Maskierung eines vollständigen Wortes fügen Sie am Wortanfang "??" hinzu.
Base: Processing ??ESRI1/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE.DGN Test: Processing ESRI2/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE2.DGN
- "?!" – In ein einzelnes Token ist möglicherweise ein "." (Punkt) eingebettet. Ein offensichtliches Beispiel hierfür wäre der Name einer Datei mit einer Erweiterung: Straßennamen.dbf. Unter bestimmten Umständen möchten Sie vielleicht einen Teil des Namens (vor oder nach dem ".") beim Vergleich des Tokens ignorieren.
Base: Master table is: streetnames?!.dbf Test: Master table is: streetnames
- "???" – Hiermit wird die gesamte nachfolgende Zeile maskiert.
Base: ??? 8 4 1 0 14 10 Test: 12 8 2 1 16 12
- "#" – Das einfachste Maskierungssymbol ist das Symbol "#". An allen Stellen, an denen in der Eingabe-Basisdatei ein "#" erscheint, wird das dazugehörige Zeichen in der Eingabe-Testdatei ignoriert.
ASCII ist der Standarddateityp. Ändern Sie den Dateityp bei der Eingabe von Binärdateien in Binär (BINARY in Python).
Wird für ASCII-Dateien ein Übereinstimmungsfehler ausgegeben, werden Unterschiede, wie zum Beispiel eine abweichende Gesamtzeichenzahl, gemeldet und die Abweichungen für die einzelnen Zeilen aufgeführt.
Tritt ein Übereinstimmungsfehler für Binärdateien auf, wird die Meldung ausgegeben, dass die Dateigrößen unterschiedlich sind. Außerdem werden die Abweichungen für die einzelnen Byte aufgeführt.
Die Ausgabe-Vergleichsdatei enthält alle Ähnlichkeiten und Unterschiede zwischen der Eingabe-Basisdatei und der Eingabe-Testdatei. Diese Datei ist eine kommagetrennte Textdatei, die in ArcGIS als Tabelle angezeigt und verwendet werden kann.
Bei der Verwendung dieses Werkzeugs in Python können Sie den Status des Werkzeugs mit result.getOutput(1) abrufen. Der Wert lautet 'true', wenn keine Unterschiede gefunden werden, und 'false', wenn Unterschiede festgestellt werden.
Weitere Informationen zur Verwendung von Werkzeugen in Python
Syntax
FileCompare_management (in_base_file, in_test_file, {file_type}, {continue_compare}, {out_compare_file})
Parameter | Erläuterung | Datentyp |
in_base_file | Die Eingabe-Basisdatei wird mit der Eingabe-Testdatei verglichen. Die Eingabe-Basisdatei bezieht sich auf eine von Ihnen für gültig erklärte Datei. Die Basisdatei verfügt über den richtigen Inhalt und die richtigen Informationen. | File |
in_test_file | Die Eingabe-Testdatei wird mit der Eingabe-Basisdatei verglichen. Die Eingabe-Testdatei bezieht sich auf eine Datei, an der Sie durch Bearbeiten oder Kompilieren neuer Informationen Änderungen vorgenommen haben. | File |
file_type (optional) | Die zu vergleichenden Dateitypen.
| String |
continue_compare (optional) | Gibt an, ob nach dem Auffinden des ersten Übereinstimmungsfehlers alle Eigenschaften verglichen werden sollen.
| Boolean |
out_compare_file (optional) | Diese Datei enthält alle Ähnlichkeiten und Unterschiede zwischen der Eingabe-Basisdatei und der Eingabe-Testdatei. Diese Datei ist eine kommagetrennte Textdatei, die in ArcGIS als Tabelle angezeigt und verwendet werden kann. | File |
Codebeispiel
FileCompare – Beispiel (Python-Fenster)
Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion "FileCompare" im unmittelbaren Modus verwendet wird.
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' )
FileCompare (Werkzeug) – Beispiel (eigenständiges Skript)
Beispiel für die Verwendung des Werkzeugs "FileCompare" in einem eigenständigen Skript.
# 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])
Umgebung
Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Ja
- ArcGIS for Desktop Standard: Ja
- ArcGIS for Desktop Advanced: Ja