matlab - 在不提取Matlab中的内容的情况下读取Zip文件中的CSV文件的数据

标签 matlab zip unzip

我有多个 Zip 文件 {'File1.zip', 'File2.zip', 'File3.zip',..., 'FileN.zip'}其中每个 zip 文件都包含一个 Data.csv文件。我想读取'Data.csv'中的数据无需解压缩 Zip 文件的内容即可提取每个 Zip 文件的内容。这可能吗..?

最佳答案

当然Winzip/7zip/Winrar 没有像word 那样可以直接调用的COM 接口(interface)组件,excel 其他应用程序。

因此@Java 是合适的

想法是不要物理提取文件,而是创建文件的绝对路径,以便 Windows 认为文件的物理存在(类似于 ~tmp 文件)

这里的代码

zipFilename = 'Ex.zip';
zipJavaFile  = java.io.File(zipFilename);

% 创建一个 Java ZipFile
 zipFile = org.apache.tools.zip.ZipFile(zipJavaFile);

% 从 ZipFile 中提取条目。
 entries = zipFile.getEntries;
 cnt = 1;

% 获取 Zip 文件路径
 while entries.hasNext
   tempObj = entries.nextElement;
   file{cnt,1} = tempObj.getName.toCharArray';
   cnt = cnt+ 1;
 end

% 提取文件名
 ind = regexp(file,'$*.csv$');
 ind = find(~cellfun(@isempty,ind));  % Find Non Empty Cell Index
 file = file(ind);

% 创建绝对路径,以便 Windows 将其视为目录
  file = cellfun(@(x) fullfile('.',x),file,'UniformOutput',false);

% 现在对文件进行任何操作。

关于matlab - 在不提取Matlab中的内容的情况下读取Zip文件中的CSV文件的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23131163/

相关文章:

MATLAB - 警告 : Variable 'vol' cannot be saved to a MAT-file whose version is older than 7. 3?

MATLAB:使用列表访问多维数组的元素

Matlab:用不包括自身的行的最小值替换矩阵中的元素

java - 如何使用 Apache Commons compress 创建加密的 Zip 文件?

android - retrofit 是否会自动解压缩 GZIP 文件?

c++ - 在 RedHat 机器上执行 C++ 代码之前等待解压缩完成

terminal - 自动解压缩文件夹中的文件 [mac os x]

matlab - 3D 中切片的线性组合

java - 生成的 zip 进程似乎没有将文件添加到存档

python - 如何加载存储在 zip 文件中的一组图像?