Запись datastore в файлы
writeall(
записывает данные из входа datastore ds
,outputLocation
)ds
для вывода файлов в местоположении, указанном в outputLocation
. Количество файлов выхода совпадает с количеством файлов, на которые ссылается datastore.
writeall(
записывает данные с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Для примера можно задать ds
,outputLocation
,Name,Value
)'OutputType'
и расширение файла, такое как 'csv'
для определения типа файлов, которые writeall
создает.
Запишите datastore на диск, а затем создайте новый datastore для записанных файлов. Этот процесс полезен для сохранения вашей работы или совместного использования datastore с коллегой.
Создайте datastore для airlinesmall.csv
набор данных, обработка 'NA'
значения как отсутствующие данные. Выберите только Year
, Month
, и Carrier
переменные.
ds = datastore('airlinesmall.csv'); ds.TreatAsMissing = 'NA'; ds.SelectedVariableNames = {'Month','Year','UniqueCarrier'};
Предварительный просмотр datastore.
preview(ds)
ans=8×3 table
Month Year UniqueCarrier
_____ ____ _____________
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
Сохраните этот datastore в новую папку с именем ExampleData
на C:\
диск. (Вы можете задать другое расположение записи, особенно если вы не используете компьютер Windows ®.) Задайте 'FolderLayout'
как 'flatten'
поместить файлы datastore непосредственно в целевую папку, не создавая подпапок.
location = 'C:\ExampleData'; writeall(ds,location,'Folderlayout','flatten')
Очистить ds
из рабочей директории. Чтобы восстановить datastore с диска, создайте новый datastore, которое ссылается на ту же папку, где были записаны данные.
clear ds
ds2 = datastore(location);
При записи datastore в файлы можно выбрать дублирование или уплощение структуры папки путем установки 'FolderLayout'
параметр. Создайте изображение datastore из расположения входа и затем запишите datastore в файлы. Затем запишите файлы в выход местоположении путем дублирования размещения папки. Наконец, запишите файлы как плоский список в выход расположение.
Создайте datastore из 'C:\input\'
расположения, который содержит некоторые изображения автомобилей и поездов:
imds = imageDatastore('C:\input\','IncludeSubfolders',true);
Эта структура папки является всего лишь примером. Вы можете попробовать эту функциональность со структурой папки на вашем компьютере, которая содержит файлы изображений.
Исследуйте Folders
свойство входа datastore, которое содержит полный путь к входу набору данных.
imds.Folders
ans = 1×1 cell array {'C:\input\'}
Запишите datastore в выход местоположение 'C:\output\'
. Значение по умолчанию для 'FolderLayout'
параметр 'duplicate'
. Поэтому writeall
функция дублирует все папки, содержащиеся в Folders
свойство input datastore, а затем записывает файлы в соответствующие выходные папки.
writeall(imds,'C:\output\');
Теперь запишите файлы из datastore в выходное расположение 'C:\output\'
как плоский список путем установки 'FolderLayout'
на 'flatten'
. В данном случае, writeall
функция не сохраняет входа папку размещения а вместо этого записывает все файлы в расположение с плоским выходом.
writeall(imds,'C:\output\','FolderLayout','flatten');
Для получения дополнительной информации см. FolderLayout.
Можно использовать FilenamePrefix
и FilenameSuffix
параметры для добавления текста в начало или конец имен выходных файлов. Создайте datastore из входа. Запишите datastore в файлы и добавьте текст в начало имен файлов. Затем снова запишите datastore и добавьте текст в конец имен файлов.
Создайте datastore из 'C:\input\'
расположения, который содержит некоторые изображения автомобилей и поездов:
imds = imageDatastore('C:\input\','IncludeSubfolders',true);
Эта структура папки является всего лишь примером. Вы можете попробовать эту функциональность со структурой папки на вашем компьютере, которая содержит файлы изображений.
Теперь запишите файлы в выход место. Задайте значение FilenamePrefix
как 'png_'
добавить этот текст в начало каждого выхода файла.
writeall(imds,'C:\output\','FilenamePrefix','png_');
Запишите файлы в другое выходное место. Задайте значение FilenameSuffix
как '_image'
добавить этот текст в конец имени каждого выходного файла.
writeall(imds,'C:\output2\','FilenameSuffix','_image');
ds
- Входной datastoreВведите datastore. Можно использовать эти хранилища данных как вход в writeall
:
Вы также можете использовать эти хранилища данных с writeall
если вы поставляете либо 'OutputFormat'
или 'WriteFcn'
Пара "имя-значение":
outputLocation
- Расположение папки для записи данныхРасположение папки для записи данных, заданное как вектор символов или строковый скаляр. outputLocation
может задать полный или относительный путь.
Пример: outputLocation = '../../dir/data'
Пример: outputLocation = "C:\Users\MyName\Desktop"
Типы данных: char
| string
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
writeall(ds,outputLocation,'FolderLayout','flatten')
'OutputFormat'
- Выход файлаФормат выходного файла, заданный как разделенная разделенными запятой парами, состоящая из 'OutputFormat'
и вектор символов или строковый скаляр.
На основе типа входного datastore ds
выберите одно из следующих значений для файлов выхода. Можно выбрать любой табличный выход вывода для любого из перечисленных ниже табличных хранилищ данных.
Входной параметр Datastore | Выход |
---|---|
TabulartextDatastore , SpreadsheetDatastore , ParquetDatastore | 'txt' , 'csv' , 'xlsx' , 'xls' , 'parquet' , или 'parq' |
ImageDatastore | 'png' , 'jpg' , 'jpeg' , 'tif' , или 'tiff' |
AudioDatastore | 'wav' , 'ogg' , 'flac' , 'mp4' , или 'm4a' |
FileDatastore , TransformedDatastore , CombinedDatastore | Все выходные форматы поддерживаются. |
Для некоторых выходных форматов существуют дополнительные пары "имя-значение", которые можно использовать для уточнения операции записи.
Выход | Пары "имя-значение" |
---|---|
| |
| |
| |
| |
|
Типы данных: char
| string
'FolderLayout'
- Размещение файлов в выходной папке'duplicate'
(по умолчанию) | 'flatten'
Размещение файлов в выходной папке, заданный как разделенная разделенными запятой парами, состоящая из 'FolderLayout'
и любой из них 'duplicate'
или 'flatten'
.
'duplicate'
- The writeall
функция реплицирует структуру папки, содержащуюся в расположении входных данных, в указанное выходное расположение. Расположение входных данных содержит Folders
свойство входного datastore.
'flatten'
- The writeall
функция записывает все файлы из входных данных в указанную выходную папку без каких-либо подпапок.
Типы данных: char
| string
'FilenamePrefix'
- Префикс к имени файлаПрефикс к имени файла, заданный как разделенная разделенными запятой парами, состоящая из 'FilenamePrefix'
и вектор символов или строковый скаляр.
writeall
функция добавляет указанный префикс к именам выходных файлов. Например, этот код добавляет текущую дату в начало всех имен выходных файлов из datastore:
prefixText = string(datetime('today')) writeall(imds,'C:\myFolder','FilenamePrefix',prefixText);
Типы данных: char
| string
'FilenameSuffix'
- Суффикс к имени файлаСуффикс к имени файла, заданный как разделенная разделенными запятой парами, состоящая из 'FilenameSuffix'
и вектор символов или строковый скаляр.
writeall
функция добавляет указанный суффикс к выходу именам файлов. Для примера этот код добавляет описательный текст 'jpeg_70per'
в конец всех имен выходных файлов из datastore:
writeall(imds,'C:\myFolder','FilenameSuffix','jpeg_70per');
Типы данных: char
| string
'UseParallel'
- Индикатор для параллельной записиfalse
(по умолчанию) | true
| 0
| 1
Индикатор для записи параллельно, заданный как разделенная разделенными запятой парами, состоящая из 'UseParallel'
и любой из них false
или true
(0
или 1
).
По умолчанию writeall
записывает последовательно. Если вы задаете UseParallel
на true
, затем writeall
разделяет операции записи на отдельные группы и запускает группы параллельно, если:
Установлен Parallel Computing Toolbox™.
Открытый параллельный пул существует или автоматическое создание пула включено в параметрах Parallel Preferences.
В противном случае, writeall
записывает последовательно независимо от значения для UseParallel
.
writeall
не поддерживает запись параллельно через локальные потоки.
Примечание
Параллельная запись не поддерживается для CombinedDatastore
объекты или хранилища данных, получающиеся из transform
применяется к CombinedDatastore
.
Типы данных: logical
'WriteFcn'
- Пользовательская функция записиПользовательская функция записи, заданная как разделенная разделенными запятой парами, состоящая из 'WriteFcn'
и указатель на функцию. Указанная функция отвечает за создание файлов выхода.
Можно использовать 'WriteFcn'
аргумент пары "имя-значение" для записи данных в различные форматы, даже если writeall
не поддерживает непосредственно выход.
Пользовательская функция записи должна принимать как минимум три входных параметров, data
, writeInfo
, и outputType
:
function myWriteFcn(data,writeInfo,outputType)
data
содержит выходы read
метод, работающий на datastore.
writeInfo
является объектом типа matlab.io.datastore.WriteInfo
с полями, перечисленными в таблице.
Область | Описание | Напечатать |
---|---|---|
ReadInfo | Второй выход read метод | struct |
SuggestedOutputName | Полное, глобально уникальное имя файла, соответствующее требованиям к местоположению и именованию | string |
Location | Аргумент местоположения передан в datastore write | string |
outputType
- выход, в который необходимо записать, например "txt"
или "csv"
.
Функция записи, которая записывает файлы паркета из datastore, является:
function myParquetWriteFcn(data, writeInfo, outputType) if strcmp(outputType,"parquet") parquetwrite(writeInfo.SuggestedOutputName,data) end end
myParquetWriteFcn
как функция записи для datastore ds
, используйте следующие команды:ds = parquetDatastore(location); outputLocation = 'C:/tmp/MyData'; writeall(ds,outputLocation,'WriteFcn',@myParquetWriteFcn);
Типы данных: function_handle
jpeg
или jpg
Выход'Quality'
- Качество JPEG-сжатого файла75
(по умолчанию) | скаляром в области значений [0,100]Качество файла со сжатием JPEG, заданное как разделенная разделенными запятой парами, состоящая из 'Quality'
и скаляр в области значений [0,100], где 0 является более низким качеством и более высоким сжатием, а 100 является более высоким качеством и более низким сжатием.
Пример: 'Quality',25
wav
или flac
Выход'BitsPerSample'
- Количество выходных бит на выборку16
(по умолчанию) | 8
| 24
| 32
| 64
Количество выхода бит на образец, заданное как разделенная запятой пара, состоящее из 'BitsPerSample'
и 8
, 16
, 24
, 32
, или 64
.
Для файлов FLAC только 8
, 16
, или 24
поддерживаются биты на каждую выборку.
Пример: 'BitsPerSample',32
mp4
или m4a
Выход'BitRate'
- Килобиты в секунду (кбит/с)Количество килобитов в секунду (кбит/с), используемых для сжатого аудио файлов, задается как разделенная запятой пара, состоящая из 'BitRate'
и 64
, 96
, 128
, 160
, 192
, 256
, или 320
. В Windows® 7 или более поздней версии, единственными допустимыми значениями являются: 96
, 128
, 160
, и 192
.
В целом, большая BitRate
Значение результатов в более высоком качестве сжатия.
Пример: 'BitRate',96
txt
или csv
Выход'WriteVariableNames'
- Индикатор записи имен переменных в виде заголовков столбцаtrue
(по умолчанию) | false
Индикатор записи имен переменных в качестве заголовков столбца, заданный как разделенная разделенными запятой парами, состоящая из 'WriteVariableNames'
и любой из них true
или false
.
Индикатор | Поведение |
---|---|
| Функция записи включает имена переменных в качестве заголовков столбца выхода. Это поведение по умолчанию. |
| Функция записи не включает имена переменных в выход. |
'Delimiter'
- Символ разделителя полейСимвол разделителя полей, заданный как разделенная разделенными запятой парами, состоящая из 'Delimiter'
и вектор символов или строковый скаляр, содержащий один из следующих спецификаторов:
Спецификатор | Разделитель полей |
---|---|
| Запятая. Это поведение по умолчанию. |
| Пространство |
| Вкладка |
| Точка с запятой |
| Вертикальный брус |
Можно использовать 'Delimiter'
Пара "имя-значение" только для текстовых файлов с разделителями.
Пример: 'Delimiter','space'
Типы данных: char
| string
'Encoding'
- Схема кодирования символов'system'
(по умолчанию) | 'UTF-8'
| 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...Схема кодирования символов, сопоставленная с файлом, задается как разделенная разделенными запятой парами, состоящая из 'Encoding'
и 'system'
или стандартное имя схемы кодирования символов, подобное одному из значений в этой таблице. Когда вы не задаете ни одну кодировку или не задаете кодировку следующим 'system'
функция записи использует кодировку по умолчанию системы для записи файла.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
Пример: 'UTF-8'
Типы данных: char
| string
'QuoteStrings'
- Индикатор для записи цитируемого текстаfalse
(по умолчанию) | true
Индикатор записи цитируемого текста, заданный как разделенная разделенными запятой парами, состоящая из 'QuoteStrings'
и любой из них false
или true
. Если 'QuoteStrings'
является true
, затем функция записи заключает текст в двойные кавычки и заменяет любые символы с двойной кавычкой, которые появляются как часть этого текста, два символов с двойной кавычкой.
Можно использовать 'QuoteStrings'
Пара "имя-значение" только с разделителями текстовых файлов.
xls
или xlsx
Выход'Sheet'
- Лист для записи вЛист для записи, заданный как разделенная разделенными запятой парами, состоящая из 'Sheet'
и вектор символов или строковый скаляр, содержащий имя листа или положительное целое число, указывающее индекс листа. Имя листа не может содержать двоеточие (:
). Для определения имен листов в файле электронной таблицы используйте sheets = sheetnames(filename)
. Для получения дополнительной информации см. sheetnames
.
Укажите лист для записи по имени или индексу:
name - Если заданное имя листа не существует в файле, функция записи добавляет новый лист в конец набора листов.
индекс - если заданный индекс листа является индексом, большим, чем количество листов, то функция записи добавляет пустые листы, пока количество листов в книге не равняется индексу листа. Функция записи также генерирует предупреждение, указывающее, что она добавила новый лист.
Можно использовать 'Sheet'
Пара "имя-значение" только с файлами электронной таблицы.
Пример: 'Sheet'
, 2
Пример: 'Sheet'
, 'MySheetName'
Типы данных: char
| string
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Чтобы запустить параллельно, установите 'UseParallel'
опция для true
.
Для получения дополнительной общей информации о параллельных вычислениях смотрите Запуск функций MATLAB с поддержкой автоматических параллелей (Parallel Computing Toolbox).
imageDatastore
| parquetDatastore
| spreadsheetDatastore
| tabularTextDatastore
| write
| audioDatastore
(Audio Toolbox)
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.