Работа с файлами
Документация
Главная

Работа с файлами

Работа с файлами осуществляется с помощью блоков:

Эти блоки могут использовать как локальное хранилище, так и внешние подключения — например, SMB-подключения.

При работе с блоками из категории Хранилище для каждого пространства создается специальная папка с именем в виде GUID (уникальный идентификатор) в рабочем каталоге Proceset в подкаталоге filestorage %ProgramData%\Infomaximum на ОС Windows и /var/lib/infomaximum/data/ внутри контейнера на ОС Linux.

Пример каталога в Windows

Сформировать CSV

Блок создает CSV-файл из данных, полученных из предыдущих блоков.

Параметры:

  • Колонки CSV:
    • Имя колонки
    • Данные для колонки (добавляются через маппинг; принимает файловые переменные и массив файлов)
  • Добавлять заголовки колонок — если включено, первая строка будет содержать названия колонок
  • Разделитель:
    • Точка с запятой
    • Запятая
    • Прямая черта
    • Косая черта
    • Табуляция
    • Пробел
    • Другой (появляется поле для указания разделителя)

Сформировать CSV

Сформированный файл можно архивировать и загрузить в каталог.

Архивировать

Блок архивирует один или несколько файлов в формат .gzip.

Файлы, которые необходимо архивировать, передаются в поле Файлы с помощью маппинга. Блок принимает отдельные файловые переменные через кнопку Добавить или массив файлов через кнопку fx.

Архивировать

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

Заметка

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

Распаковать

Блок распаковывает GZIP-архивы.

Единственный параметр — Файлы (обязательный). Блок принимает один или несколько архивов: по одному через кнопку Добавить или массивом через кнопку fx. Из одного архива блок получает один файл, порядок выходных файлов соответствует порядку входных.

Имя распакованного файла берется из поля file_name архива.

Распаковать

Блок возвращает массив объектов, у каждого объекта — поля file_name, file_content, file_size.

Тексты ошибок:

  • Пустой массив или отсутствие файлов на входе — Файлы для распаковки не найдены
  • Файл не в формате GZIP — Некорректный формат входящего файла: требуется файл формата gz
Заметка

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

Извлечь текст из PDF

Блок извлекает текст из PDF-файлов. Текст на изображениях и сканах блок не распознает.

Файлы передаются в поле PDF-файл: по одному через кнопку Добавить или массивом через кнопку fx.

Извлечь текст из PDF

Блок возвращает массив объектов — по одному на каждый входной файл. Поля объекта:

  • source — имя файла
  • statustrue для успешно обработанных, false для нечитаемых (скан или поврежденный файл)
  • text — извлеченный текст. Для нечитаемых файлов возвращается пробел (" ")

Нечитаемый файл в наборе не прерывает обработку остальных. После выполнения проблемные файлы можно отфильтровать по значению status.

Если передан пустой массив, блок возвращает ошибку Массив файлов пуст.

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

Заметка

Прежняя версия блока помечена устаревшей. Существующие скрипты продолжают работать.

Если нужно извлечь не только текст, но и изображения, или работать с форматами DOC(X), HTML, XML, TXT, JSON, RTF, используйте блок Извлечь данные.

Извлечь данные

Блок извлекает текст и изображения из файлов различных форматов для дальнейшего использования, например анализа нейросетью.

Поддерживаемые форматы: CSV, HTML, XML, TXT, JSON, RTF, PDF, DOC(X). Максимальный размер файла — 4 Гб.

Файлы передаются в поле Содержимое: по одному через кнопку Добавить или массивом через кнопку fx.

Панель параметров блока «Извлечь данные»

Блок возвращает массив объектов — по одному на каждый входной файл. Поля объекта:

  • source — имя файла
  • text — извлеченный текст
  • images — массив извлеченных изображений в формате PNG с именами report_1.png, report_2.png и т. д.

Если файл поврежден, блок прерывает выполнение с ошибкой Файл поврежден. Проверьте целостность документа и повторите попытку. Если передан пустой массив — ошибка Файлы для извлечения не найдены.

Отличие от Извлечь текст из PDF:

Извлечь текст из PDFИзвлечь данные
ФорматыТолько PDFCSV, HTML, XML, TXT, JSON, RTF, PDF, DOC(X)
Что извлекаетТолько текстТекст и изображения (PNG)
Нечитаемый файл в набореНе прерывает обработку, в поле statusfalseПрерывает выполнение

Конвертация файлов в PNG

Блок конвертирует файлы в изображения формата PNG.

Поддерживаемые форматы: CSV, HTML, HTM, XML, TXT, JSON, RTF, PDF, DOC(X). Максимальный размер файла — 4 Гб.

Параметры блока:

  • Содержимое — один файл, несколько файлов через кнопку Добавить или массив через кнопку fx
  • Качество изображений (обязательное) — Высокое (300 DPI) или Среднее (150 DPI), по умолчанию — Среднее (150 DPI)
  • Постраничная конвертация — переключатель. Если он включен, каждая страница файла конвертируется в отдельное изображение, а номер страницы добавляется в конец имени файла

Панель параметров блока «Конвертация файлов в PNG»

Блок всегда возвращает массив images, даже если на входе был один файл. Каждый элемент массива содержит поле source (имя исходного файла) и поле с PNG-изображением.

К имени выходного файла добавляется формат исходного: sample.pdfsample_pdf.png. При постраничной конвертации добавляется еще и номер страницы: sample_pdf_1.png, sample_pdf_2.png.

Создать файл из шаблона

Блок создает файл по шаблону, подставляя в него данные из скрипта.

Параметры блока:

  • Шаблон (обязательное) — файл шаблона, передается через маппинг
  • JSON-объект с данными (обязательное) — данные для подстановки в шаблон
  • Формат (обязательное) — формат выходного файла: PDF, DOCX или XLSX
  • Имя файла (обязательное) — имя создаваемого файла

Панель параметров блока «Создать файл из шаблона»

Загрузить в каталог

Блок создает файл и загружает его в указанный каталог в любом заданном формате.

Параметры блока:

  • Путь к файлу — для блоков пакета Хранилище укажите путь к файлу относительно каталога filestorage вашего пространства. Для блоков пакетов FTP, SFTP и SMB укажите путь относительно рабочей области, заданной в настройках подключения. Путь к создаваемому файлу необходимо указывать с названием и расширением файла. Например, /имяпапки/имяфайла.csv. При загрузке архива укажите расширение .gzip. Путь также можно указать с помощью маппинга — в этом случае рядом с полем укажите расширение
  • Содержимое файла (используются только поля маппинга). Может содержать:
    • Текст
    • Текст и теги маппинга. Содержимое должно быть однородно, невозможно совместить картинку и текст
    • Теги маппинга. Содержимое должно быть однородно, невозможно совместить картинку и текст
    • Файловый объект (file_object), полученный из другого блока
Совет

Не указывайте в поле Путь к файлу у блока Загрузить в каталог из группы Хранилище одиночный символ / без имени файла — в этом случае блок будет считаться ненастроенным, и файл не будет создан.

Загрузить в каталог

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

Получить список файлов

Блок получает список файлов, их характеристики и информацию о каталоге.

В поле Путь к каталогу для блоков пакета Хранилище укажите путь относительно каталога filestorage вашего пространства. Для блоков пакетов FTP, SFTP и SMB укажите путь относительно рабочей области, заданной в настройках подключения. Для ввода пути можно использовать как поля маппинга, так и текст. Чтобы указать несколько путей, нажмите Добавить под полем — каждый путь занимает отдельную строку с кнопкой удаления.

Дополнительные параметры:

  • Искать во вложенных папках — при включении поиск идет в указанной папке и всех вложенных, маска применяется на всех уровнях
  • Только файлы — при включении в результат попадают только файлы, без папок. Поиск во вложенных папках продолжает работать, если он включен

Оба переключателя по умолчанию выключены.

Маски имени файла

В конце пути можно указать маску имени файла для фильтрации. Маска допустима только в имени файла — если указать ее в середине пути, скрипт не пройдет проверку и не запустится (ошибка Маска допустима только в имени файла; укажите путь хотя бы с одним «/»).

Поддерживаемые символы:

СимволЧто значитПример
*Любая последовательность символов*.pdf — все PDF-файлы
?Один любой символfile?.txtfile1.txt, fileA.txt
[bt]Один символ из набора[bt]est.csvbest.csv или test.csv
[a-z]Один символ из диапазона[a-z]*.csv
[!a]Один символ, кроме указанного[!a]*.txt — файлы, не начинающиеся на «a»
{*.pdf,*.doc}Альтернация — одно из перечисленных через запятую{*.pdf,*.doc} — все PDF и DOC
Заметка

Маска учитывает регистр: по маске *.PDF файлы с расширением .pdf в результат не попадут. Фигурные скобки работают как альтернация только с запятой внутри — по маске {*.pdf} результат будет пустым. Рекурсивный обход вложенных папок включается переключателем Искать во вложенных папках, а не маской **.

Если по маске нет совпадений, блок возвращает пустой список без ошибки.

Панель параметров блока «Получить список файлов»: переключатели «Искать во вложенных папках» и «Только файлы», маска в поле «Путь к каталогу»

Блок возвращает массив с данными:

  • Name — название файла/каталога (тип String)
  • Size — размер файла/каталога в байтах (тип String)
  • Owner — владелец файла/каталога (тип String)
  • Group — группа, к которой относится владелец файла/каталога (тип String)
  • Modification_time — время последнего изменения файла/каталога (тип DateTime)
  • Permissions — права пользователя на файл/каталог в виде последовательности символов: доступ на чтение, запись и выполнение для владельца, группы и остальных пользователей. Если доступ отсутствует, вместо символа отображается прочерк
  • directorytrue для папок, false для файлов

Получить CSV

С помощью блока можно получить CSV-файл из указанного каталога.

Параметры блока:

  • Путь к файлу (для блоков пакета Хранилище укажите путь к файлу относительно каталога filestorage вашего пространства. Для блоков пакетов FTP, SFTP и SMB укажите путь относительно рабочей области, заданной в настройках подключения. Путь к файлу необходимо указывать с названием и расширением файла)
  • Таблица содержит заголовок (определяет наличие/отсутствие заголовка таблицы)
  • Имена столбцов (колонки можно менять местами, удерживая нужную и перетаскивая вниз или вверх):
    • Имя колонки
    • Тип (строка, число, дробное число, дата и время, логический тип, большое целое число)
  • Загрузить пример (позволяет загрузить CSV-файл для автоматического добавления колонок. При нажатии кнопки открывается модальное окно для загрузки файла):
    • Типы данных определяются автоматически, можно изменить
    • Загрузка новой схемы заменяет предыдущую
    • Сохранить настройки парсинга (параметры передаются в настройки блока)
  • Настройка парсинга:
    • Разделитель (символ, разделяющий значения на элементы в CSV):
    • Точка с запятой
    • Запятая
    • Прямая черта
    • Косая черта
    • Табуляция
    • Пробел
    • Другой (появляется поле для указания разделителя)
    • Квалификатор (символ, обрамляющий значения элементов в CSV):
    • Одиночные кавычки
    • Двойные кавычки
    • Локаль (будет применена при парсинге значений из CSV. Выбирается из списка)
    • Кодировка (будет применена при разборе байтового потока файла. Выбирается из списка)

Получить CSV

Загрузка примера

Для автоматического добавления колонок можно загрузить пример CSV-файла. Для этого нажмите Загрузить пример справа от заголовка Имена столбцов. Откроется модальное окно для загрузки файла.

Загрузка примера

Выберите файл и нажмите Продолжить.

Откроется окно предпросмотра, в котором можно сменить разделитель, квалификатор, локаль, кодировку и типы данных колонок. Если поставить галочку у параметра Сохранить настройки парсинга, настройки скопируются в параметры блока. Для завершения загрузки нажмите кнопку Применить.

Окно предпросмотра

Столбцы автоматически добавились, заменив предыдущие.

Новые столбцы

Заметка
  • Максимальный размер файла — 20 МБ
  • Загрузка новой схемы заменяет предыдущую
  • Если указаны типы, которые не соответствуют данным, появляется ошибка
  • При попытке загрузить пустой файл отобразится ошибка, что файл пуст, окно предпросмотра не откроется
  • Количество колонок в заголовке и количество колонок в самой таблице должны совпадать, иначе появится ошибка
  • Если в одной и той же колонке встречаются разные типы данных, например, Строка и Число, все значения данной колонки конвертируются в строки
  • Если пример CSV-файла состоит из одной строки, все колонки таблицы будут с типом Строка
  • Все пустые значения или значения, где явно прописано null, будут с типом Строка

Скачать содержимое файла

Блок скачивает файл из каталога, указанного в поле Путь к файлу. Для блоков пакета Хранилище укажите путь к файлу относительно каталога filestorage вашего пространства. Для блоков пакетов FTP, SFTP и SMB укажите путь относительно рабочей области, заданной в настройках подключения. Путь к файлу необходимо указывать с названием и расширением файла. Пример: /имяпапки/имяфайла.csv. Путь можно ввести вручную или использовать маппинг. Максимальный размер скачиваемого файла — 52,5 МБ.

Чтобы скачать сразу несколько файлов, включите переключатель Массив и укажите в поле Путь к файлу массив путей через маппинг. Скачанные файлы блок вернет одним массивом.

Скачать файл

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

Удалить файл

Блок удаляет файл из каталога, указанного в поле Путь к файлу. Для блоков пакета Хранилище укажите путь к файлу относительно каталога filestorage вашего пространства. Для блоков пакетов FTP, SFTP и SMB укажите путь относительно рабочей области, заданной в настройках подключения. Путь к файлу необходимо указывать с названием и расширением файла. Пример: /имяпапки/имяфайла.csv. Путь можно ввести вручную или использовать маппинг.

Удалить файл

Была ли статья полезна?

Предыдущая
Работа с базами данных
Следующая
Работа с сервисами
8 (800) 555-89-02
430006, Саранск,
Северо-восточное шоссе, д. 3
Код вида деятельности
в области ИТ 15.02 и 17.01
ОКВЭД 62.01
ИНН 1328​909857
Языки программирования: