Skip To Content

Dateivergleich

Zusammenfassung

Vergleicht zwei Dateien und gibt die Vergleichsergebnisse zurück.

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.

  • Mit Dateivergleich können die Unterschiede zwischen zwei ASCII-Dateien oder zwei Binärdateien in einem Bericht ausgegeben werden.

  • 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
  • ASCII ist der Standarddateityp. Ändern Sie bei der Eingabe von Binärdateien den Dateityp 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(in_base_file, in_test_file, {file_type}, {continue_compare}, {out_compare_file})
ParameterErklärungDatentyp
in_base_file

Die Eingabe-Basisdatei wird mit der Eingabe-Testdatei verglichen. Die Eingabe-Basisdatei bezieht sich auf eine von Ihnen als gültig deklarierte 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 Bearbeitungen oder die Kompilation neuer Informationen Änderungen vorgenommen haben.

File
file_type
(optional)

Die zu vergleichenden Dateitypen.

  • ASCIIEs wird ein Vergleich mit ASCII-Zeichen durchgeführt. Dies ist die Standardeinstellung.
  • BINARYEs wird ein Binärvergleich durchgeführt.
String
continue_compare
(optional)

Gibt an, ob nach dem Auffinden des ersten Übereinstimmungsfehlers alle Eigenschaften verglichen werden sollen.

  • NO_CONTINUE_COMPARENach dem Auffinden des ersten Übereinstimmungsfehlers wird angehalten. Dies ist die Standardeinstellung.
  • CONTINUE_COMPARENach dem Auffinden des ersten Übereinstimmungsfehlers werden weitere Eigenschaften verglichen.
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

Abgeleitete Ausgabe

NameErklärungDatentyp
compare_status

Der Vergleichsstatus lautet 'true', wenn keine Unterschiede gefunden werden, und 'false', wenn Unterschiede festgestellt werden.

Boolesch

Codebeispiel

FileCompare – Beispiel 1 (Python-Fenster)

Das folgende Skript für das 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 – Beispiel 2 (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
# 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())

Umgebungen

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen