ファイル比較(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
- ?! - 単一のトークンには「.」(ピリオド)が埋め込まれている場合があります。わかりやすい例として、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 がデフォルトのファイル タイプです。BINARY ファイルを入力する場合は、ファイル タイプを BINARY に変更してください。
-
ASCII ファイルが不一致の場合は、文字の合計数が異なっているなどの相違点がレポートされ、各行の相違点がレポートされます。
-
BINARY ファイルが不一致の場合は、ファイル サイズが異なることがレポートされ、各バイトの相違点がレポートされます。
-
[出力比較ファイル] には、[入力ベース ファイル] と [入力テスト ファイル] 間の類似点と相違点がすべて含まれます。このファイルは、ArcGIS でテーブルとして表示および使用できる、カンマ区切りテキスト ファイルです。
-
Python でこのツールを使用する場合は、result.getOutput(1) を使用してこのツールのステータスを取得できます。相違点が検出されない場合は値が 'true'、相違点が検出された場合は 'false' になります。
構文
パラメータ | 説明 | データ タイプ |
in_base_file |
入力ベース ファイルが入力テスト ファイルと比較されます。入力ベース ファイルには、正しいファイルを参照します。このベース ファイルには正しいコンテンツおよび情報が含まれます。 | File |
in_test_file |
入力テスト ファイルは入力ベース ファイルに対して比較されます。入力テスト ファイルは、新しい情報の編集またはコンパイルによって変更を行ったファイルを参照します。 | File |
file_type (オプション) |
比較対象のファイルのタイプ。
| String |
continue_compare (オプション) |
最初の不一致を検出した後にすべてのプロパティを比較するかどうかを示します。
| Boolean |
out_compare_file (オプション) |
このファイルには、[入力ベース ファイル] と [入力テスト ファイル] 間の類似点と相違点がすべて含まれます。このファイルは、ArcGIS でテーブルとして表示および使用できる、カンマ区切りテキスト ファイルです。 | File |
コードのサンプル
次の 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(ファイル比較)ツールを使用する方法の例。
# Name: FileCompare.py
# Description: Compare two text files and return comparison result.
# Author: ESRI
# 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:
# Print error message if an error occurs
print arcpy.GetMessages()