Как запустить perl скрипт на windows
Перейти к содержимому

Как запустить perl скрипт на windows

Начинаем работать с Perl

Рассмотрим базовые принципы Perl, популярного языка для написания CGI скриптов — программ, которые взаимодействуют с веб сервером для создания большей динамичности веб страниц.

Для многих задач разработчики используют более современные альтернативы, такие как PHP — которые включают некоторые функции, взятые из Perl — но Perl все равно лучше для освоения базовых навыков создания CGI скриптов.

Если посмотреть, то вы обнаружите что на каждой Linux системе установлен Perl, и кроме того вы можете скачать Perl для Windows — с сайта activestate.com.

Базовые принципы

Perl — язык-интерпретатор (как PHP), и он не "строго типизированный", что означает, что вам не обязательно объявлять переменную, перед тем как её использовать, и указывать какого она типа. Вы можете написать что-то вроде этого:

Как вы видите, каждое выражение заканчивается точкой с запятой, строка заключается в апострофы.

Одна из первых вещей, которые необходимо запомнить, как и в некоторых других языках, это то, что важен тип кавычек; если вы используете одиночные кавычки (апострофы), то выражение внутри трактуется как строка текста; если вы используете двойные кавычки, то в выражении можно использовать специальные символы и переменные. Например, напишем следующий код:

В результате будет выведена строка "$a\n’"

Если использовать код

то с новой строки будет выведена сообщение "hello world"

Всегда проверяйте правильность строк внутри двойных кавычек.

Как запустить скрипт? Если вы хотите провести простой тест — используйте Perl интерактивно: откройте командное окно и наберите perl (в Windows, вам возможно придется добавить путь к файлу perl.exe).

Теперь набирайте строчки скрипта. В конце добавьте пустую строку и затем нажмите Ctrl & D. Обычно нужно сделать что-нибудь более сложное, для этого напишите свой скрипт в текстовый файл и сохраните его с расширением .pl. Затем запустите его, выполнив команду

В системе Linux вы можете первой строкой написать #!/usr/bin/perl и использовать команду chmod для того чтобы сделать файл скрипт выполняемым. Тогда для запуска скрипта вам нужно будет только написать его имя, например ./scriptname.pl. Обычно строки, начинающиеся со знака # являются комментарием, но первая строка в *nix указывает системе интерпретатор скрипта.

Блоки и циклы

Программирование, как правило, включает блоки данных или команд, которые используются внутри циклов, и Perl не является исключением. Фактически он был спроектирован для работы с текстовыми файлами, то есть читает информацию находящуюся внутри них или со стандартного ввода (набор на клавиатуре) или из списка файлов в командной строке. Вот простой пример скрипта:

Сохраните файл как test.pl и запустите его используя следующую команду:

Второй test.pl можно заменить именем любого другого текстового файла. Взглянув на скрипт, можно увидеть блоки команд в цикле, заключенные в фигурные скобки.

Для задания условий в цикл while используются значки <>. Специальное указание "<>" означает что используется стандартный ввод, а специальная переменная "$_" означает текущую строку ввода. Таким образом, скрипт читает строку со стандартного ввода и выводит её. Если вы просто наберете perl test.pl, он будет ожидать пока вы наберете какую-нибудь строку и затем выведет её, и так будет продолжаться пока вы не нажмете Ctrl & D, что будет означать конец скрипта.

Вам так же надо использовать скобки в выражениях if — для условий используются обычные скобки, а для блока команд фигурные. В следующем куске кода мы используем еще одну часто используемую в Perl вещь — сравнение.

" сравнивает совпадают ли переменные, а оператор "!

" проверяет несовпадение. Добавть в конец скрипта следующий строки и запустите его командой perl test.pl test.pl:

Результатом будут две строки кода и перед каждой примерно такое сообщение: "Fred is here, line 7."

Практическое приложение

Теперь нас есть простой скрипт, который ищет в файле слово "Fred", но для чего мы можем его использовать?

Например, его легко встроить в какой-нибудь полезный CGI скрипт, скажем, для поиска строки в таблице данных.

Очень часто, на простых вебсайтах работа с базами данных уже реализована. Но если у вас уже есть данные в формате Excel или похожем, вы можете сохранить их формате CSV (Comma Separate Values — данные разделенные запятой), или другом текстовом формате.

Затем вы загружаете их на ваш веб-сайт, используете простой Perl скрипт для извлечения строк в зависимости от запроса пользователя — для этого мы используем наш пример.

Давайте используем некоторые данные: составим простую таблицу с контактными номерами телефонов. Она будет содержать имя человека, и два номера.

Сохраним файл в формате CSV, и загрузим его на сервер в ту же директорию, в которой будет наш скрипт. Мы создадим скрипт для извлечения строки, содержащей данные человека, которого необходимо найти. Скрипт в конце содержит полный код.

Сначала мы посылаем заголовок, чтобы сказать веб браузеру, что передается простой текст; как и в других заголовках, это необходимо сделать c новой строки, и затем добавить пустую строку, показывающую конец заголовка и начало содержимого веб страницы.

Затем команда open читает файл, расположенный в той же директории, что и скрипт, CSV файл, который мы создали в Excel; в качестве идентификатора файла используется имя "CONTACTS". Его мы будем использовать в цикле while для чтения файла. Поскольку все данные разделены запятой, мы можем записать их в различные переменные.

Первая команда next if нужна для пропуска следующей итерации цикла; мы убеждаемся, что не выведем строку, содержащую заголовок, который Excel добавляет в CSV файл. Вторая команда используется для нескольких вещей; здесь есть сравнение, с которым мы знакомились раньше, но в конце используется маленькая буква i, которая заставляет Perl игнорировать блок.

Вторая вещь, которую мы добавили — это ассоциативный массив; Это простой массив, состоящий из имен каждого элемента.

Они выделяются фигурными скобками, а специальный массив $ENV содержит переменные окружения, которые содержат информацию о веб сервере, как части CGI системы. Переменная, которая нас интересует — QUERY_STRING, которая содержит часть адреса, стоящую после знака вопроса.

Эта часть проверяется на совпадение и пропускаются все строки, кроме совпадающих, скрипт завершает работу, выдав все контакты, которые найдет.

Таким образом, если вы сохранили скрипт на сервере под именем contacts.pl — кроме этого его возможно придется сделать исполняемым — и затем загружаете страницу http://[название_вашего_сервера]/contacts.pl, вы увидите список, состоящий из всех записей таблицы. Но если вы используете адрес вроде такого: "contacts.pl?smith", вы увидите только строку данных, в которой есть это имя.

Теперь все, что вам нужно делать — это время от времени обновлять данные. В будущем, вы можете изменить тип данных на text/html и использовать HTML тэги в командах вывода. Или вы можете создавать временные файлы и затем использовать команды Perl для поиска и замены, и записать данные в эти временные файлы для дальнейшего использования.

Как запустить программу на Perl в Windows?

AlexSetup

1. Есть много способов: можете писать руками путь/к/перлу/perl скрипт.pl (точнее, у вас в качестве пути может быть что-нибудь вроде C:\Program Files\Some Perl\bin), можете добавить путь к перлу в переменную окружения %PATH% и запускать скрипты командой perl скрипт.pl , можете настроить ассоциацию перловых исходников с интерпретатором — вариантов масса. А ещё был когда-то cygwin, где перл конечно же был, а ещё в свежих версиях Windows 10 есть линуксовая подсистема, где тоже перл должен быть.

2. #!/usr/bin/perl — так называемый shebang, особый комментарий, где после решётки с восклицательным знаком пишется путь к интерпретатору (это может быть не только перл) и, если надо, дополнительные параметры (например, #!/usr/bin/perl -F’ ‘ -nla ). В юниксоподобных системах это имеет значение — при запуске скрипта без указания команды вызова интерпретатора операционная система как раз в shebang и смотрит, чтобы понять, как же выполнить скрипт — бывают скрипты и без расширений. Под Windows shebang скорее всего роли не играет.

3. Чтобы перл больше ругался, используйте
Вместо первой из этих строк можете добавить ключ -w при запуске перлового интерпретатора.

4. IDE с поддержкой перла существуют. Лучшее из того, что попадалось мне под Windows — Komodo IDE. Есть упрощённая бесплатная версия — Komodo Edit: это уже не IDE (нет отладчика, юнит-тестов и ещё кучи всякой всячины), а просто навороченный редактор с поддержкой перла.

Использование языка PERL для автоматизации работы с пространственными данными в среде Windows

Как использовать язык PERL для автоматизации рутинных операций с данными с большим количеством примеров.

Содержание

Зачем это нужно

Данная статья безусловно не является пособием по языку PERL, однако она может помочь специалистам, активно использующим пространственные данные , в том числе данные дистанционного зондирования в своей работе. Увеличение количества доступных пространственных данных часто ставит перед исследователями задачу автоматизации процедур подготовки данных и их анализа. В большинстве случаев, при работе крупных информационных центров, эти задачи решаются написанием специальных программ и реализуются на платформах UNIX-LINUX. В тоже время, для большинства менее масштабных работ стандартных ГИС приложений и среды Windows обычно бывает достаточно для организации небольших потоков операций. Одним из средств организации таких потоков операций в Win32 является использование языка PERL. Приведенные в статье примеры скриптов PERL могут не являться оптимальными с точки зрения программирования. Однако они позволяют решать поставленные задачи и просты для понимания и изменения пользователями.

Краткие основы языка PERL

О языке PERL

Язык PERL — Practical Extraction and Report Language (практический язык извлечений и отчетов) – был создан американским программистом Larry Wall для автоматизации работы с текстом и выполнения рутинных задач в операционной системе UNIX. В настоящее время (сентябрь 2006 года) стандартом является 5-ая версия интерпретатора языка, распространяемая свободно и доступная для платформ UNIX, LINUX, WIN32 и MAC OS. Примеры в этой статье используют версию ActivePerl для Windows (скачать дистрибутив ActivePerl). Основным удобством использования языка PERL в среде Windows является отсутствие необходимости в компилировании программ – Ваши скрипты будут автоматически запускать интерпретатор языка для выполнения, и изменение программы будет не сложнее внесение правок в текстовый файл! При установке интерпретатора проверьте, чтобы он был установлен в директорию по умолчанию — C:\Perl.

Для получения дополнительной информации и справки по языку можно использовать встроенную справочную систему (на английском), а также русскоязычные пособия, доступные в Интернет: Изучаем Perl (http://perl.find-info.ru/perl/016/index.htm), Введение в Perl (http://perl.org.ru/documentation/docs/perl/index.htm) и другие. Следует иметь ввиду, что как и во всяком OpenSource проекте, в PERL существует масса вариантов синтаксиса одних и тех же команд. В этой статье не всегда приводятся самые удобные и короткие выражения – Вы сможете заменить их на более простые при написании своих скриптов.

Типы данных, загрузка и вывод данных

В Perl используется три типа данных: переменные, массивы и хеши. В простых скриптах мы будем использовать только переменные и массивы. Имена переменных всегда начинаются с символа $, например: $filename PERL различает тип переменных по контексту данных, и нет необходимости специально декларировать список переменных в начале программы. В любом месте программы вы можете определить новую переменную и присвоить ей значение:

Массив представляет собой последовательность переменных любого типа, элементы массива нумеруются последовательно, начиная с 0. Массив обозначается символом @:

Элемент массива определяется его номером:

Вы можете присвоить переменной значение элемента массива:

или определить переменную как размер (число элементов) в массиве:

Поскольку мы будем рассматривать скрипты, оперирующие с текстами, то нам необходимо представлять себе как прочитать или записать данные в текстовый файл. Встроенной функцией open можно открыть файл для чтения:

Если файл с таким именем существует, он будет стерт и записан заново. После записи данных в файл его необходимо закрыть:

Проверка значений, циклы

Основные функции языка программирования, которые нам понадобятся для написания скриптов, будут проверка значений и организация циклов процедур. Эти операции в PERL имеют схожий синтаксис:

Проверка значений по типу «если да-то, если нет-то» выглядит так:

В данном примере переменной $U будет присвоено минимальное значение из двух вариантов.

Определение цикла операций выглядит следующим образом:

В данном случае цикл будет выполнен 10 раз, в конце каждого цикла мы увеличиваем значение переменной $inc на единицу — ++$inc.

Операторы, встроенные функции

Вот некоторые из операторов языка, которые будут нами использованы в примерах скриптов: Присвоение значения: «=» или «my … =»

Отношение: < (меньше), > (больше), <= (меньше или равно), == (равно – для чисел), != (не равно – для чисел), eq (равно – для строк), ne (не равно – для строк).

Мы также будем использовать встроенные функции, отвечающие за ввод и вывод данных и выполняющие простые операции над текстом:

open/close: открытие текстового файла для чтения или записи – open, и закрытие файла – close (синтаксис этих функция рассмотрен выше).

print: вывод на печать.

Следует отметить наиболее распространенные спецсимволы, которые можно выводить на печать: \n – конец строки, \t – символ табуляции, \ — символ пробела (пробел стоит после \), \символ — любой символ, если он зарезервирован во внутренней структуре PERL (например, для вывода символов “  ; \ необходимо набрать \“ \; \\ соответственно, иначе программа не будет работать!). split: разделяет строку по заданному символу-разделителю:

Например: если $fileout = «image1,s_11,23» (строка таблицы с информацией о имени файла, номере точки и зоны проекции), то переменные будут иметь следующие значения:

s///: оператор замены. В общем случае синтаксис оператора выгладит так:

s/символ-шаблон/символ для замены шаблона/;

Например, полученная выше переменная $zone содержит, кроме необходимой информации, также символ переноса строки. Что бы очистить его, используем замену:

s/\n//; — переменная $zone равна переменной $zone, в которой символ конца строки \n заменен на отсутствие символа.

system: выполняет системную функцию. Например, для получения списка файлов в директории, используем функцию MS-DOS dir:

PERL запустит интерпретатор MS-DOS и выполнит указанную в переменной строку.

Общие правила написания скриптов в PERL и их отладка

Скрипт PERL в среде Windows представляет собой простой текстовый файл с расширением .pl. Если в Вашей системе установлен интерпретатор языка, то файлы *.pl будут иметь значок с желтым шариком, и будут выполняться автоматически по двойному щелчку на имя файла (подобно файлам .bat). Первая строка файла должна содержать путь к интерпретатору языка – в нашем случае строка эта будет выглядеть так:

Далее вводиться текст программы. Все строки, в которых используются операторы или функции, должны заканчиваться точкой с запятой - ;. Исключение составляют строки, определяющие условия или операторы циклов:

Примечания обозначаются символом # — весь текст от символа до конца строки будет считаться примечанием.

Никаких специальных символов конца скрипта в PERL не используется. Для запуска скриптов, рассчитанных на работу со всеми файлами или поддиректориями в определенной директории, требуется скопировать файл скрипта в эту папку и запустить его. В противном случае Вам придется использовать не относительные, а абсолютные пути к папкам и файлам. Для отладки скриптов полезно бывает использовать интерпретатор MS-DOS. Для этого запустите Command Prompt, перейдите в директорию со скриптами, и наберите имя файла скрипта с расширением. Файл будет запущен, и информация об ошибках появиться на экране.

Примеры скриптов

Внимание: для работы с примерами, которые можно загрузить с данной страницы, необходимо сменить их расширение с *.txt на *.pl.

Автоматизация работы с файлами: Операции с файлами и директориями

Приведем для примера два простых скрипта. Первый скрипт создает поддиректории во всех поддиректориях рабочей директории (рабочей мы будем называть директорию, из которой запущен скрипт) (скачать скрипт):

Примечание – хотя данный скрипт может использовать директории с пробелами, многие приведенные ниже скрипты при наличии пробелов в именах директорий и файлов не будут работать. Впрочем, тоже относиться и к большинству распространенных ГИС-приложений.

Второй скрипт скопирует файлы с именем time1.tif из всех поддиректорий рабочей директории в директорию output, заменив имя time1 на имя поддиректории, из которой он был скопирован (то есть файл time1.tif из директории 123_056 получит имя 123_056.tif и так далее). Мы могли бы использовать такой же подход, как в предыдущем случае, но сознательно применили другой путь – теперь скрипт PERL не будет самостоятельно выполнять команды ОС, а создаст исполняемый файл, который можно будет запустить позже. Хотя такой подход менее продуктивен, он позволяет избежать необходимости восстанавливать данные при ошибках в программе – понятно, что исполняемый batch файл легче проверить и убедиться, что он будет работать правильно (скачать скрипт).

Автоматизация работы с файлами: Распаковка архивов

Рассмотрим примеры, более близкие к практике. Скрипт, приведенный ниже, может помочь в автоматической распаковке снимков Landsat-7, скаченных с сайта GLCF (http://glcfapp.umiacs.umd.edu:8080/esdi/index.jsp). Мы скачали целиком директории со снимками и теперь хотим удалить все технические файлы и ненужные каналы, и распаковать файлы tif из архивов GZ с помощью архиватора WinRAR (установленного в C:\WinRAR) (скачать скрипт):

Автоматизация работы с файлами: Упаковка файлов

Если вы получили снимки Landsat из архивов EROS Data Center, то, скорее всего, они будут в формате tif без сжатия. Мы хотели бы сжать эти файлы в архивы формата GZ с помощью архиватора GZip (установленного в C:\Gzip), причем каждый файл tif в отдельный архивный файл. Для этого мы используем вот такой скрипт:

Автоматизация работы в PCI Geomatica: Запуск скриптов EASI

Одним из наиболее удобных приложений PCI Geomatica является язык EASI – простой язык для написания скриптов, позволяющих выполнить большинство распространенных операций подготовки и анализа данных ДЗ. Скрипты EASI имеют расширение .eas и могут быть запущены из командной строки DOS – имя скрипта указывается в качестве атрибута при вызове программы. Простейший скрипт PERL, приведенный ниже, позволяет запускать один и тот же скрипт EASI последовательно в каждой поддиректории рабочей директории – то есть позволяет выполнить однотипные операции над всеми наборами данных, используемых в Вашем проекте. Для удобства использования все необходимые скрипты EASI заранее собраны в директории C:\scripts\, так что перед выполнением скрипта необходимо только указать имя нужного скрипта для исполнения (скачать скрипт):

Автоматизация работы в PCI Geomatica: Генерирование скриптов EASI

Простота языка EASI делает возможным автоматическое создание скриптов с помощью программы PERL по заданному шаблону. Поскольку задачи, для которых может потребоваться подобная процедура, достаточно индивидуальны, мы не будем приводить примера готового скрипта, а покажем только часть кода. В данной задаче исходными данными служили файлы с таблицами координат углов прямоугольника, спроецированного из синусоидальной проекции в UTM. Требовалось построить пустую растровую базу данных PCIDSK с размером ячейки 28.5 метров таким образом, что бы она полностью включала в себя полученный прямоугольник. Данный кусок кода представляет собой операцию внутри цикла:

Примечание – для включения скриптов EASI в непрерывный процесс Вы можете запускать созданные скрипты автоматически из PERL, используя команду:

После чего использовать результаты выполнения скрипта для дальнейших действий.

Автоматизация работы в ERDAS Imagine: Генерирование пакетов команд

Скрипт, приведенный в первом примере, создаст пакетный файл команд ERDAS Imagine для относительно простой процедуры Layer merge. В параметрах процедуры требуется указать абсолютные имена файлов. Для этого нам необходимо знать или задать имя рабочей директории. Хотя определить имя директории, из которой запущен скрипт, можно автоматически, мы, в данном случае, использовали переменную, значение которой необходимо изменить на абсолютный путь к рабочей директории перед запуском скрипта. Так же обратите внимание на использование в ERDAS путей в стандарте UNIX. Данный скрипт рассчитан на определенный шаблон имени файлов (стандарт Ortho Landsat для GLCF): p169r057_7t20000127_z37_nn30.tif, и будет объединять только 3,4 и 5 каналы снимков (скачать скрипт):

Второй пример содержит скрипт для расчета среднего и стандартного отклонения в плавающем окне для всех файлов stat.tif из всех поддиректорий рабочей директории. Его основным отличием от предыдущего скрипта является необходимость внесения путей к файлам в отдельные переменные. Смена абсолютного пути к рабочей директории здесь не продумана, так что при необходимости изменения, придется изменить все четыре пути к файлам (более правильным было бы введение дополнительной переменной, как в предыдущем варианте).

Автоматизация работы в ERDAS Imagine: Генерирование моделей

Однако иногда встроенных команд ERDAS бывает недостаточно и возникает необходимость запуска собственных моделей. В таком случае мы использовали следующий подход: сначала создается и тестируется модель, потом она записывается в файл в виде скрипта, затем команды скрипта переносятся в PERL в качестве атрибутов функции print. В таком случае, для каждого набора файлов PERL будет создавать собственную модель, используя абсолютные пути к файлам, а затем все созданные модели будут включены в пакетный файл для автоматического запуска. Ниже приведен пример скрипта для создания и выполнения моделей для расчета стандартного отклонения для 5-канальных файлов stat.tif из всех поддиректорий (скачать скрипт):

*Примечание – данный скрипт является примером организации работы с пользовательскими моделями в ERDAS Imagine. Возможны более продуктивные подходы – например, написание моделей с пользовательскими переменными и пр.

Автоматизация работы в ArcInfo: Генерирование скриптов AML

Разумеется, PERL имеет огромный потенциал для автоматического создания скриптов AML. К сожалению, автор практически не использовал в своей работе ArcInfo. В качестве примера можно использовать небольшой скрипт PERL для создания огромного файла для выполнения команды Generate.

Автоматизация импорта данных MODIS: Использование MRT

Использование пакетных файлов для запуска MRT уже реализовано в виде, значительно более дружелюбном к пользователю, чем использование скриптов PERL – например, существует специальная программа, [modisimport-tool.html представленная на сайте GIS-Lab]. Тем не менее, мы приведем здесь один из вариантов скриптов, который может быть модифицирован и является общим (хотя и не оптимальным) решением проблемы автоматического импорта, склеивания и перепроецирования продуктов MODIS. Для использования скрипта Вам потребуется изменить путь к программе MRT на тот, который Вы использовали при установке, и разместить свои данные в директории C:\modwork\input. В случае данного скрипта используются 6 ячеек сетки для каждого композита – если число ячеек другое, его надо изменить, также надо изменить параметры проекции и набор каналов. Программа создаст список файлов HDF в Вашей директории, создаст папки для мозаик (C:\modwork\mosaic) и для выгрузки данных (C:\modwork\output), файлы с параметрами перепроецирования для каждого набора мозаик и исполняемый файл для запуска мозаики и перепроецирования (скачать скрипт).

Автоматизация импорта данных MODIS: Использование MRT-Swath

Более важная для нас операция – автоматический импорт и перепроецирование продуктов MOD02QKM (Swath продуктов MODIS) с помощью программы MRT-Swath еще не решен в виде отдельного приложения, и поэтому использование скрипта PERL здесь оправдано. Для запуска скрипта надо изменить (или переместить данные):

  1. Имя папки с данными – по умолчанию файлы MOD02QKM находятся в D:\MODISWORK\MOD02QKM, а геолокационные поля к ним (MOD03) – в папке D:\\MODISWORK\MOD03\.
  2. Путь к программе – в данной версии это C:\MRTSwath\.
  3. Параметры проекции и набор каналов. Мы предполагаем, что для всех сцен скачены оба продукта (MOD02QKM и MOD03), и их наборы полностью соотвествуют друг другу. Скрипт создаст папку для выгрузки результатов — D:\MODISWORK\output\, исполняемый файл batch.bat для запуска перепроецирования и набор файлов параметров для каждого снимка. Запускать скрипт надо из директории D:\MODISWORK\ (или той, на которую Вы измените это название!):

Автоматизация обработки текстовых отчетов

Обработка текстов и генерирование отчетов является основной задачей PERL, однако при использовании в ГИС такие задачи не являются первостепенными. Тем не менее, при получении большого количества результатов, для их сравнения иногда необходимо применять автоматизацию. Например, после классификации большого количества снимков требуется создание суммарной таблицы соотношения классов. В нашем случае каждый снимок классифицировался на классы «лес» и «не лес», кроме того, ряд пикселей был отмечен как «нет данных». Таким образом, результирующий растровый слой изображения содержит три класса данных: 1 – нет данных 2 – лес 3 — не лес Мы можем выгрузить гистограмму значений этого слоя в текстовый файл (например, командой EASI histdump) – таким образом, в каждой директории с данными мы создадим файл blockforest.txt, который представляет собой колонку чисел: 10 – число пикселей первого класса 128779 – число пикселей второго класса и т.д. 6576 0 0 . Создадим скрипт для автоматического сбора данных из всех файлов blockforest.txt и создания таблицы:

Мы не будем предлагать этот скрипт для загрузки, поскольку все операции по анализу текстовых отчетов являются индивидуальными. Отметим, что с помощью PERL возможно создание программ для анализа весьма сложных текстовых конструкций. В тех случаях, когда количество переменных велико или изначально неизвестно, можно, для облегчения задачи, создавать промежуточные текстовые файлы, которые затем будут анализироваться (например, выгружать гистограммы по каждому классу в отдельные файлы в виде столбцов данных для последующего статистического анализа). Метод создания промежуточных текстовых файлов является неоптимальным с точки зрения программиста, однако он очень прост для начинающего пользователя и позволяет проверить все промежуточные результаты при необходимости.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *