matlab.io.datastore.FileSet
说明
matlab.io.datastore.FileSet
对象可帮助您在以迭代方式遍历文件时处理大型文件集合。可将 FileSet
对象和 DsFileReader
对象结合使用,来管理和读取数据存储中的文件。
创建对象
描述
指定文件扩展名、是否包括子文件夹或设置对象属性。您可以指定多个名称-值对组。用引号将名称括起来。fs
= matlab.io.datastore.FileSet(location
,Name,Value
)
输入参量
location
— 要包括的文件或文件夹
字符向量 | 字符向量元胞数组 | 字符串数组 | 结构体
要包括在 FileSet
对象中的文件或文件夹,指定为字符向量、字符向量元胞数组、字符串数组或结构体。如果这些文件不在当前文件夹中,则 location
必须是完整或相对路径。指定文件夹的子文件夹中的文件不会自动包括在 FileSet
对象中。
通常,对于 Hadoop® 工作流来说,如果您将 location
指定为结构体,则它必须包含 FileName
、Offset
和 Size
字段。此要求使您可以将 location
参量直接用于 matlab.io.datastore.HadoopLocationBased
类的 initializeDatastore
方法。有关示例,请参阅Add Support for Hadoop。
指定 location
时可以使用通配符 (*)。指定此字符会将所有匹配的文件或者匹配文件夹中的所有文件都包括在文件集对象中。
如果文件在本地不可用,则文件或文件夹的完整路径必须为统一资源定位器 (URL),例如
hdfs://
。hostname
:portnumber
/path_to_file
数据类型: char
| cell
| string
| struct
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: fs = matlab.io.datastore.FileSet(location,'IncludeSubfolders',true)
IncludeSubfolders
— 子文件夹包含标记
0
或 false
(默认) | 1
或 true
子文件夹包含标志,指定为数值或逻辑值 1
(true
) 或 0
(false
)。指定 true
可包含每个文件夹中的所有文件和子文件夹,指定 false
则仅包含每个文件夹中的文件。
示例: 'IncludeSubfolders',true
FileExtensions
— 文件扩展名
字符向量 | 字符向量元胞数组 | 字符串数组
文件扩展名,指定为字符向量、字符向量元胞数组或字符串数组。可以使用空引号 ''
表示不带扩展名的文件。
如果未指定 'FileExtensions'
,则 BlockedFileSet
自动包含所有文件扩展名。
示例: 'FileExtensions','.jpg'
示例: 'FileExtensions',{'.txt','.csv'}
属性
AlternateFileSystemRoots
— 备用文件系统根路径
字符串数组 | 元胞数组
备用文件系统根路径,指定为字符串数组或元胞数组。当您在本地计算机上创建数据存储,但需要访问和处理另一台计算机(可能是不同操作系统)上的数据时,请使用 'AlternateFileSystemRoots'
。此外,如果您使用 Parallel Computing Toolbox™ 和 MATLAB® Parallel Server™ 处理数据,而数据存储在本地计算机上并且在不同平台云或集群计算机上存储数据副本,则必须使用 'AlternateFileSystemRoots'
关联根路径。
要关联一组等效的根路径,请将
'AlternateFileSystemRoots'
指定为字符串数组。例如,["Z:\datasets","/mynetwork/datasets"]
要将在数据存储方面等效的多组根路径关联起来,请将
'AlternateFileSystemRoots'
指定为包含多个行的元胞数组,其中每一行代表一组等效的根路径。将元胞数组中的每一行指定为一个字符串数组或字符向量元胞数组。例如:将
'AlternateFileSystemRoots'
指定为字符串数组构成的元胞数组。{["Z:\datasets", "/mynetwork/datasets"];... ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}
也可以将
'AlternateFileSystemRoots'
指定为字符向量元胞数组。{{'Z:\datasets','/mynetwork/datasets'};... {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}
'AlternateFileSystemRoots'
的值必须满足以下条件:
包含一行或多行,每一行指定一组等效的根路径。
每一行指定多个根路径,每个根路径必须至少包含两个字符。
根路径是唯一的,并且不是彼此的子文件夹。
包含至少一个指向文件位置的根路径条目。
有关详细信息,请参阅Set Up Datastore for Processing on Different Machines or Clusters。
示例: ["Z:\datasets","/mynetwork/datasets"]
数据类型: string
| cell
NumFiles
— 文件数
数值标量
此 属性 为只读。
文件集对象中的文件数,指定为数值标量。
示例: fs.NumFiles
数据类型: double
NumFilesRead
— 读取的文件数
数值标量
此 属性 为只读。
从 FileSet
对象读取的文件数,指定为数值标量。
示例: fs.NumFilesRead
数据类型: double
FileInfo
— 有关文件的信息
matlab.io.datastore.FileInfo
对象
此 属性 为只读。
有关 matlab.io.datastore.FileSet
对象中文件的信息,以 matlab.io.datastore.FileInfo
对象形式返回,具有以下属性:
Filename
-FileSet
对象中文件的名称。该名称包含文件的完整路径。FileSize
- 文件的大小(以字节为单位)。
如需有关特定文件的信息,请指定文件索引。例如,fs.FileInfo(2)
返回第二个文件的文件名和文件大小。如果在指定 (:)
或不指定索引的情况下调用 fs.FileInfo
,它将返回所有文件的信息。
示例: fs.FileInfo(2)
对象函数
hasNextFile | 确定文件集中是否有其他文件 |
nextfile | 下一个文件或文件块的信息 |
hasPreviousFile | 确定文件集是否有上一个文件 |
previousfile | 关于文件集中上一个文件的信息 |
progress | 确定已读取多少分块或文件 |
maxpartitions | 最大分区数 |
partition | 划分文件集对象 |
subset | 创建数据存储或 FileSet 的子集 |
reset | 重置文件集对象 |
示例
创建文件集并获取所有文件的信息
创建一个文件集并查询文件集中特定文件的信息。
为一组文件创建一个文件集 fs
。
folder = {'accidents.mat','airlineResults.mat','census.mat','earth.mat'}
folder = 1x4 cell
{'accidents.mat'} {'airlineResults.mat'} {'census.mat'} {'earth.mat'}
fs = matlab.io.datastore.FileSet(folder)
fs = FileSet with properties: NumFiles: 4 NumFilesRead: 0 FileInfo: FileInfo for all 4 files AlternateFileSystemRoots: {}
使用 nextfile
函数或通过查询 FileInfo
属性并指定索引来获取特定文件的信息。使用 nextfile
获取连续文件的信息。例如,获取文件集中前两个文件的信息。
file1 = nextfile(fs)
file1 = 1x1 FileInfo Filename FileSize ________________________________________________________________________________________________________ ________ "/mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2528353/build/matlab/toolbox/matlab/demos/accidents.mat" 7343
file2 = nextfile(fs)
file2 = 1x1 FileInfo Filename FileSize ______________________________________________________________________________ __________ "/tmp/Bdoc24a_2528353_1098215/tp8439eff7/matlab-ex98758341/airlineResults.mat" 1.5042e+05
查询 FileInfo
属性以获取有关该文件集中最后一个文件的信息。
lastfile = fs.FileInfo(4)
lastfile = 1x1 FileInfo Filename FileSize ____________________________________________________________________________________________________ ________ "/mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2528353/build/matlab/toolbox/matlab/demos/earth.mat" 32522
版本历史记录
在 R2020a 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)