ファイル比較 (File Compare) (データ管理)

概要

2 つのファイルを比較して、比較結果を返します。

使用法

  • このツールは、比較結果を示すメッセージを返します。デフォルトで、最初の不一致が検出されるとこのツールは実行を停止します。相違点をすべてレポートする場合は、[比較を継続] パラメーターをオンにします。

  • [ファイル比較 (File Compare)] は 2 つの ASCII ファイル間または 2 つのバイナリ ファイル間の相違点をレポートできます。

  • このツールでは、ASCII ファイル内のテキストの文字、単語、および行のマスキングがサポートされています。たとえば、作成日時を表すテキストを含んでいる場合以外は一致するファイルについては、 不一致になる可能性があります。さらに、数字がプラットフォームごとに格納または処理される点でわずかな変動があります。このため、プラットフォーム間で数値の精度に違いが生じます。Sun OS プラットフォームでは 415.999999999 とレポートされた数値が、Windows XP プラットフォームでは 416.000000000 とレポートされることがあります。不正な文字の比較を処理するために、[ファイル比較 (File Compare)] は複数のマスキング機能を備えています。新しいテキスト ファイルを既存のベース ファイルと比較する前に、以下の特別なマスキング シンボルが含まれるようにベース ファイルを編集してください。

    • # - 最も簡易なマスキング シンボルは「#」シンボルです。入力ベース ファイル内で # が出現した場合は常に、入力テスト ファイル内の対応する文字が無視されます。
      Base: Y delta = 9048.6#
      Test: Y delta = 9048.61
    • ??- 別のマスキング ツールに「??」シンボルとの組み合わせがあります。単語全体をマスキングするには、その単語の先頭に「??」を追加します。
      Base: Processing ??ESRI1/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE.DGN
      Test: Processing ESRI2/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE2.DGN
    • ?!- 1 つのトークンに「.」 (ピリオド) が埋め込まれていることがあります。わかりやすい例として、streetnames.dbf などの拡張子の付いたファイル名があります。「.」の前か後の名前の一部をトークンの比較で除外したい場合があります。
      Base: Master table is: streetnames?!.dbf
      Test: Master table is: streetnames
    • ???- 後続の行全体をマスキングできます。
      Base: ???       8       4       1       0      14      10
      Test:        12      8      2       1      16     12
  • ASCII がデフォルトのファイル タイプです。バイナリ ファイルを入力する場合は、ファイル タイプを [バイナリ] (Python では BINARY) に変更してください。

  • ASCII ファイルが不一致の場合は、文字の合計数が異なっているなどの相違点がレポートされ、各行の相違点がレポートされます。

  • バイナリ ファイルが不一致の場合は、ファイル サイズが異なることがレポートされ、各バイトの相違点がレポートされます。

  • [出力比較ファイル] には、[入力ベース ファイル][入力テスト ファイル] 間の類似点と相違点がすべて含まれます。このファイルは、ArcGIS でテーブルとして表示および使用できる、カンマ区切りテキスト ファイルです。

  • Python でこのツールを使用する場合は、result.getOutput(1) を使用してこのツールのステータスを取得できます。相違点が検出されない場合は値が 'true'、相違点が検出された場合は 'false' になります。

    Python でのツールの使用の詳細

構文

arcpy.management.FileCompare(in_base_file, in_test_file, {file_type}, {continue_compare}, {out_compare_file})
パラメーター説明データ タイプ
in_base_file

[入力ベース ファイル][入力テスト ファイル] と比較されます。[入力ベース ファイル] は、正しいファイルを参照します。このベース ファイルには正しいコンテンツおよび情報が含まれます。

File
in_test_file

[入力テスト ファイル][入力ベース ファイル] に対して比較されます。[入力テスト ファイル] は、新しい情報の編集またはコンパイルによって変更を行ったファイルを参照します。

File
file_type
(オプション)

比較対象のファイルのタイプ。

  • ASCIIASCII 文字を使用して比較します。これがデフォルトです。
  • BINARYバイナリ比較を実行します。
String
continue_compare
(オプション)

最初の不一致を検出した後にすべてのプロパティを比較するかどうかを示します。

  • NO_CONTINUE_COMPARE最初の不一致を検出した後に停止します。これがデフォルトです。
  • CONTINUE_COMPARE最初の不一致を検出した後に他のプロパティを比較します。
Boolean
out_compare_file
(オプション)

このファイルには、[入力ベース ファイル][入力テスト ファイル] 間の類似点と相違点がすべて含まれます。このファイルは、ArcGIS でテーブルとして表示および使用できる、カンマ区切りテキスト ファイルです。

File

派生した出力

名前説明データ タイプ
compare_status

相違点が検出されない場合は比較状況が 'true'、相違点が検出された場合は 'false' になります。

Boolean

コードのサンプル

FileCompare (ファイル比較) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで FileCompare 関数を使用する方法を示しています。

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 (ファイル比較) の例 2 (スタンドアロン スクリプト)

スタンドアロン スクリプトで FileCompare (フィーチャ比較) ツールを使用する方法の例。

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

環境

このツールは、ジオプロセシング環境を使用しません。

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック