Сравнить файлы (Управление данными (Data Management))
Краткая информация
Сравнивает два файла и возвращает результат сравнения. Сравнение файлов позволяет выявить различия между двумя ASCII- или бинарными файлами.
Использование
-
Этот инструмент выдает сообщение с результатами сравнения. По умолчанию, этот инструмент завершает работу и выдает результат после обнаружения первого несоответствия при сравнении. Чтобы получить информацию о всех различиях, отметьте параметр Продолжить сравнение (Continue Comparison).
-
Этот инструмент поддерживает маскирование символов, слов и линий текста в файле ASCII. Например, файлы могут быть полностью совпадать, кроме строк с датой и временем создания. Инструмент выявит несоответствия в этих файлах. Кроме того, небольшие вариации происходят из-за того, как каждая платформа хранит или обрабатывает числа. Это приводит к различиям в числовой точности на разных платформах. Платформа SunOS может предоставлять значение 415.999999999, тогда как платформа Windows XP предоставляет значение 416.000000000. Инструмент Сравнить файлы (File Compare) обладает несколькими функциями маскирования для обработки ложных сравнений. До сравнения новых текстовых файлов с существующими исходными файлами, отредактируйте исходные файлы, чтобы они включали эти особые символы маскирования.
- «#» - Самый прострой символ маскирования. Где бы не появлялся # в исходном файле, соответствующий символ в тестовом файле будет проигнорирован.
Base: Y delta = 9048.6# Test: Y delta = 9048.61
- «??» — Другой инструмент маскирования представляет комбинацию символов «??» Чтобы маскировать целый символ «word», добавьте «??» в начало слова.
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 (бинарный).
-
При обнаружении несоответствий в файлах ASCII, инструмент выдаст отчет о различиях (например, общее число символов различается) и сообщение о различиях для каждой линии.
-
При обнаружении несоответствий в файлах BINARY, инструмент выдаст отчет о различиях в размерах и сообщиться о различиях для каждого байта.
-
Выходной файл сравнения (Output Compare File) будет содержать все сходства и различия между Исходным файлом (Input Base File) и Тестовым файлом (Input Test File). Этот файл - текстовый файл с запятой в качестве разделителя, который можно просмотреть и использовать как таблицу в ArcGIS.
-
При использовании этого инструмента в Python вы можете получить статус инструмента, используя синтаксис result.getOutput(1). Значение будет равно 'true', если не было найдено различий, и 'false' – если различия были обнаружены.
Дополнительные сведения об использовании инструментов в Python
Синтаксис
Параметр | Объяснение | Тип данных |
in_base_file |
С исходным файлом сопоставляется тестовый файл. Исходный файл соответствует корректному файлу. Вся хранящаяся в нем информация - верна. | File |
in_test_file |
Тестовый файл сопоставляется с исходным файлом. Текстовый файл обратится к файлу, к которому вы применили изменения, путем редактирования или компиляции новой информации. | File |
file_type (дополнительно) |
Тип файлов, которые будут сравниваться:
| String |
continue_compare (дополнительно) |
Определяет необходимость продолжения сравнения после обнаружения первого несовпадения.
| Boolean |
out_compare_file (дополнительно) |
Данный файл будет хранить информацию обо всех совпадениях и отличиях исходного и тестового файлов. Этот файл - текстовый файл с запятой в качестве разделителя, который можно просмотреть и использовать как таблицу в ArcGIS. | File |
Пример кода
Пример скрипта Python для выполнения функции Сравнить файлы (File Compare) с запуском из окна Python в ArcGIS.
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()