matlab.io.datastore.FileSet

File-set для набора файлов в datastore

Описание

The matlab.io.datastore.FileSet объект помогает вам обработать большой набор файлов при итерационном перемещении через файлы. Используйте FileSet объект вместе со DsFileReader объект для управления и чтения файлов из datastore.

Создание

Описание

пример

fs = matlab.io.datastore.FileSet(location) создает FileSet объект для набора файлов на основе заданного местоположения.

fs = matlab.io.datastore.FileSet(location,Name,Value) задает расширение файла, включать ли подпапки или устанавливать свойства объекта. Можно задать несколько пары "имя-значение". Имена заключаются в кавычки.

Входные параметры

расширить все

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

Как правило, для Hadoop® рабочий процесс, когда вы задаете location как структура она должна содержать поля FileName, Offset, и Size. Это требование позволяет использовать location аргумент непосредственно со initializeDatastore метод matlab.io.datastore.HadoopLocationBased класс. Для получения примера смотрите Добавить поддержку Hadoop.

Вы можете использовать символ подстановки (*) при указании location. Установка этого символа включает все соответствующие файлы или все файлы в соответствующих папках объекта набора файлов.

Если файлы недоступны локально, то полный путь к файлам или папкам должен быть равномерным локатором ресурса (URL), таким как
hdfs :// hostname: portnumber/ path_to_file.

Типы данных: char | cell | string | struct

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: fs = matlab.io.datastore.FileSet(location,'IncludeSubfolders',true)

Флаг включения подпапки, заданный как число или логическое 1 (true) или 0 (false). Задайте true включать все файлы и подпапки в каждую папку или false для включения только файлов в каждую папку.

Пример: 'IncludeSubfolders',true

Расширения файла, заданные как вектор символов, массив ячеек из векторов символов или строковые массивы. Можно использовать пустые кавычки '' для представления файлов без расширений.

Если 'FileExtensions' не задан, тогда BlockedFileSet автоматически включает все расширения файлов.

Пример: 'FileExtensions','.jpg'

Пример: 'FileExtensions',{'.txt','.csv'}

Свойства

расширить все

Альтернативные корневые пути файловой системы, заданные как строковые массивы или массив ячеек. Использование 'AlternateFileSystemRoots' когда вы создаете datastore на локальной машине, но должны получить доступ и обработать данные на другой машине (возможно, другой операционной системы). Кроме того, при обработке данных с помощью Parallel Computing Toolbox™ и MATLAB® Parallel Server™, и данные хранятся на локальных машинах с копией данных, доступных на другой платформе облака или кластерных машинах, необходимо использовать 'AlternateFileSystemRoots' для связи корневых путей.

  • Чтобы связать набор корневых путей, эквивалентных друг другу, задайте 'AlternateFileSystemRoots' как строковые массивы. Для примера,

    ["Z:\datasets","/mynetwork/datasets"]

  • Чтобы связать несколько наборов корневых путей, эквивалентных datastore, задайте 'AlternateFileSystemRoots' как массив ячеек, содержащий несколько строк, где каждая строка представляет набор эквивалентных корневых путей. Задайте каждую строку в массиве ячеек как строковые массивы или массив ячеек с векторами символов. Для примера:

    • Задайте 'AlternateFileSystemRoots' как массив ячеек из строковых массивов.

      {["Z:\datasets", "/mynetwork/datasets"];...
       ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • Кроме того, задайте 'AlternateFileSystemRoots' как массив ячеек массива ячеек из векторов символов.

      {{'Z:\datasets','/mynetwork/datasets'};...
       {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

Значение 'AlternateFileSystemRoots' должны удовлетворять следующим условиям:

  • Содержит одну или несколько строк, где каждая строка задает набор эквивалентных корневых путей.

  • Каждая строка задает несколько корневых путей, и каждый корневой путь должен содержать не менее двух символов.

  • Корневые пути уникальны и не являются подпапками друг друга.

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

Для получения дополнительной информации смотрите Настройка Datastore для обработки на различных машинах или кластерах.

Пример: ["Z:\datasets","/mynetwork/datasets"]

Типы данных: string | cell

Это свойство доступно только для чтения.

Количество файлов в объекте набора файлов, заданное как числовой скаляр.

Пример: fs.NumFiles

Типы данных: double

Это свойство доступно только для чтения.

Количество файлов, считанных из FileSet объект, заданный как числовой скаляр.

Пример: fs.NumFilesRead

Типы данных: double

Это свойство доступно только для чтения.

Информация о файлах в FileSet объект, возвращенный как FileInfo объект со следующими свойствами:

  • Filename - Имя файла в FileSet объект. Имя содержит полный путь к файлу.

  • FileSize - Размер файла в байтах.

Для получения информации о конкретном файле укажите индекс файла. Для примера, fs.FileInfo(2) возвращает имя файла и размер файла для второго файла. Если вы звоните fs.FileInfo не задавая индекс, он возвращает информацию для всех файлов.

Пример: fs.FileInfo(2)

Функции объекта

hasNextFile Определите, имеет ли набор файлов другой файл в наборе файлов
nextfile Информация о следующем файле или фрагменте файла
hasPreviousFile Определите, имеет ли набор файлов предыдущий файл
previousfile Информация о предыдущем файле в наборе файлов
progress Определите, сколько блоков или файлов было прочитано
maxpartitions Максимальное количество разделов
partition Объект набора файлов разделов
subsetСоздайте подмножество datastore или набора файлов
reset Сбросьте объект набора файлов

Примеры

свернуть все

Создайте набор файлов и запросите информацию для определенных файлов в наборе файлов.

Создайте набор файлов f s для набора файлов.

folder = {'accidents.mat','airlineResults.mat','census.mat','earth.mat'}
folder = 1x4 cell
  Columns 1 through 3

    {'accidents.mat'}    {'airlineResults...'}    {'census.mat'}

  Column 4

    {'earth.mat'}

fs = matlab.io.datastore.FileSet(folder)
fs = 
  FileSet with properties:

                    NumFiles: 4
                NumFilesRead: 0
                    FileInfo: Show FileInfo for all 4 files
    AlternateFileSystemRoots: {}

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

file1 = nextfile(fs)
file1 = 
  1x1 FileInfo
                                       Filename                                        FileSize
    _______________________________________________________________________________    ________

    "/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/matlab/demos/accidents.mat"      7343  

file2 = nextfile(fs)
file2 = 
  1x1 FileInfo
                                          Filename                                           FileSize 
    ____________________________________________________________________________________    __________

    "/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/matlab/demos/airlineResults.mat"    1.5042e+05

Запрос файла Info Свойство, чтобы получить информацию о последнем файле в наборе.

lastfile = fs.FileInfo(4)
lastfile = 
  1x1 FileInfo
                                     Filename                                      FileSize
    ___________________________________________________________________________    ________

    "/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/matlab/demos/earth.mat"     32522  

Введенный в R2020a