[已答复] matlab直接读取压缩文件(winrar、zip等格式)

[复制链接]
malei_nuist 发表于 2016-5-6 10:39:27
大家好,我现在要实时的从数据库中访问数据,但上传到数据库中的压缩格式的数据,我要怎么用matlab直接读取呢?谢谢大家了!!

22 条回复


442127694 发表于 2016-5-6 12:12:13
matlab不支持直接读取rar,但可以通过dos对rar解压,然后实现对压缩包中的文件读取:

cd('D:\Program Files\WinRAR\');  % winrar安装路径
dos(strcat('winrar e -ibck', ' C:\Users\Administrator\Desktop\' ,'xxx.rar', ' C:\Users\Administrator\Desktop\'));

' C:\Users\Administrator\Desktop\'   为你要读取的rar文件路径
xxx.rar  为压缩包名称

malei_nuist 发表于 2016-5-6 12:53:37
442127694 发表于 2016-5-6 12:12
matlab不支持直接读取rar,但可以通过dos对rar解压,然后实现对压缩包中的文件读取:

cd('D:\Program File ...

解压之后的数据是只能放在原来rar文件路径里面吗, 能讲解一下,'xxx.rar', ' 前后的两个C:\Users\Administrator\Desktop\路径分别是什么意思吗?

442127694 发表于 2016-5-6 13:17:25
malei_nuist 发表于 2016-5-6 12:53
解压之后的数据是只能放在原来rar文件路径里面吗, 能讲解一下,'xxx.rar', ' 前后的两个C:%users\Adminis ...

'xxx.rar'前一个路径是压缩包所在的文件夹,后一个路径是解压后文件所在的文件夹,比如:
dos(strcat('winrar e -ibck', ' D:\myfile\' ,'aaa.rar', ' C:\new\'));  是将D:\myfile\中的aaa.rar解压到C:\new\中~

malei_nuist 发表于 2016-5-6 13:42:13
442127694 发表于 2016-5-6 13:17
'xxx.rar'前一个路径是压缩包所在的文件夹,后一个路径是解压后文件所在的文件夹,比如:
dos(strcat('wi ...

pdirinto = ' C:\Users\acer\Desktop\省探测中心\5月4号\新建文件夹\';  
pdirout='C:\Users\acer\Desktop\省探测中心\5月4号\新建文件夹\解压\';
filename=dir(pdirinto);
cd('D:\软件\winrar\');
dos(strcat('winrar e -ibck',pdirinto,filename(12).name,pdirout));
上面是学习之后的代码,报错说找不到压缩文件,可是我单独运行filename(12).name时,是可以找到的,
Z_RADR_I_Z9250_20160401020100_O_DOR_SA_CAP.bin.bz2这是我的压缩文件格式,您看看那个地方不对呢?

442127694 发表于 2016-5-6 14:10:39
本帖最后由 442127694 于 2016-5-6 14:16 编辑
malei_nuist 发表于 2016-5-6 13:42
pdirinto = ' C:%users\acer\Desktop\省探测中心\5月4号\新建文件夹\';  
pdirout='C:%users\acer\Deskto ...

问题出在这条语句:filename=dir(pdirinto),因为pdirinto中的文件路径最开始有一个空格,这是为了接下来在dos指令中调用,但你用dir函数时,如果这个路径最开始有空格,那么就不认识了,如图。另外pdirout也要空一格:

pdirout=' C:\Users\acer\Desktop\省探测中心\5月4号\新建文件夹\解压\';

1.jpg

malei_nuist 发表于 2016-5-6 16:15:21
442127694 发表于 2016-5-6 14:10
问题出在这条语句:filename=dir(pdirinto),因为pdirinto中的文件路径最开始有一个空格,这是为了接下来 ...

厉害厉害,成功解决了,真是太感谢了!!!

malei_nuist 发表于 2016-7-1 21:38:51
442127694 发表于 2016-5-6 14:10
问题出在这条语句:filename=dir(pdirinto),因为pdirinto中的文件路径最开始有一个空格,这是为了接下来 ...

大神你好,还想问个问题,我看别人程序上这样写: dos(['bzip2 -d -k -f ' FileName]),能解释一下每一项都是什么意思吗?找了好久也没找到,他这句话也没牵扯到解压路径什么的,部分程序是下面这样的:
if strcmp(FileName(end-2:end),'bz2')   %说明是压缩文件,要先进行解压
    dos(['bzip2 -d -k -f ' FileName]);
    fid=fopen(FileName(1:end-4)); %打开文件。 注意:要去掉最后的 .bz2
else
    fid=fopen(FileName); %打开文件
end
我也想达到这样的目的,选择一个文件之后直接判断是否压缩,然后就打开,不想牵扯到路径等,该怎么弄?

442127694 发表于 2016-7-4 15:35:52
malei_nuist 发表于 2016-7-1 21:38
大神你好,还想问个问题,我看别人程序上这样写: dos(['bzip2 -d -k -f ' FileName]),能解释一下每一项 ...

这行代码用bzip2命令解压“.bz2”格式的压缩包,每一项的意思是:
-d  执行解压
-k  解压后保留原始文件
-f  解压时,若输出文件与现有文件同名,执行覆盖操作
FileName  要解压的文件名

至于如何在matlab中不牵涉路径而对文件进行操作,只有将文件放在当前的路径中了。

素年锦时zoey 发表于 2016-10-16 16:00:40
您好 , 我用了上述方法,但弹出了提示“ 无法打开e.rar ”  这是为什么呢?

>> cd('D:\Program Files (x86)\WinRAR\');  
>> dos(strcat('winrar e -ibck', 'K:\数据\T90\PAY\' ,'LT51.tgz', 'K:\数据\T90\PAY\'));
>>

上帝之手94 发表于 2016-11-27 21:44:33
素年锦时zoey 发表于 2016-10-16 16:00
您好 , 我用了上述方法,但弹出了提示“ 无法打开e.rar ”  这是为什么呢?

>> cd('D:\Program Files (x8 ...

你好我也遇到了相同的问题  你解决了吗?

上帝之手94 发表于 2016-11-27 21:47:47
malei_nuist 发表于 2016-5-6 13:42
pdirinto = ' C:%users\acer\Desktop\省探测中心\5月4号\新建文件夹\';  
pdirout='C:%users\acer\Deskto ...

你好 请问下 遇到无法打开e.rar 是怎么回事呢

素年锦时zoey 发表于 2017-1-2 15:18:15
上帝之手94 发表于 2016-11-27 21:44
你好我也遇到了相同的问题  你解决了吗?

没有呀...........:'(

阿娇anjing 发表于 2017-1-19 17:01:43
素年锦时zoey 发表于 2016-10-16 16:00
您好 , 我用了上述方法,但弹出了提示“ 无法打开e.rar ”  这是为什么呢?

>> cd('D:\Program Files (x8 ...

路径前加空格试试?

MAT菜鸟LAB 发表于 2017-4-14 23:18:54
大神,我现在做毕设,老师要求用这个软件做齿轮振动信号的故障检测,我可是零基础啊,文件都不会打开,求大神指导一下啊。:'(

ArialLT 发表于 2017-10-30 11:16:52
您好,我也出现了这个问题,请问您是否解决了呢?如何解决的呢?

malei_nuist 发表于 2017-10-31 20:12:52
ArialLT 发表于 2017-10-30 11:16
您好,我也出现了这个问题,请问您是否解决了呢?如何解决的呢?

出现的是什么问题呢

afei0912 发表于 2018-2-7 16:28:23
442127694 发表于 2016-7-4 15:35
这行代码用bzip2命令解压“.bz2”格式的压缩包,每一项的意思是:
-d  执行解压
-k  解压后保留原始文件

大神,这个命令如果要指定输入目录、输出目录应怎么写呢,谢谢

wutongyu9008 发表于 2018-5-23 16:22:37
素年锦时zoey 发表于 2016-10-16 16:00
您好 , 我用了上述方法,但弹出了提示“ 无法打开e.rar ”  这是为什么呢?

>> cd('D:\Program Files (x8 ...

这个问题还没有解决嘛:P

zhangliwen815 发表于 2018-6-20 20:08:08
素年锦时zoey 发表于 2016-10-16 16:00
您好 , 我用了上述方法,但弹出了提示“ 无法打开e.rar ”  这是为什么呢?

>> cd('D:\Program Files (x8 ...

这个我遇到了,我在filepath = ' F:\Liwuchao\data1'这个路径 F前加个空格就解决了

Gettyimagesxbq 发表于 2019-4-11 09:40:30
'winrar e -ibck'  是啥意思

wammer 发表于 2021-6-10 23:34:45
Gettyimagesxbq 发表于 2019-4-11 09:40
'winrar e -ibck'  是啥意思

我也想知道

wammer 发表于 2021-6-10 23:35:20
winrar e -ibck是实现对压缩文件的解压,请问压缩文件的话该怎么写?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表