首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

严重有关问题:python没法解压缩gz文件!

2012-03-25 
严重问题:python没法解压缩gz文件!!!!问题严重了,我需要使用Python解压缩gz文件,并且这些gz文件里面都是包

严重问题:python没法解压缩gz文件!!!!
问题严重了,我需要使用Python解压缩gz文件,并且这些gz文件里面都是包含着不只一个文件的压缩包。

import   gzip
import   zipfile

file   =   gzip.GzipFile(strZipFile,   "r ")
outFile   =   open(strDstFile   , "w ")
outFile.write(file.read())
outFile.close()

发现没法把gz中的文件逐个解压缩,而是所有的文件都连在一起了
(就是说虽然可以解压缩,但是是把压缩包中的所有文件都一起解压缩到一个文件里了)

尝试使用zipfile这个包,结果发现它只支持zip文件,不支持gz文件!

支持zip文件:
> > >   z   =   zipfile.ZipFile( " " "C:\\Downloads\\ftp\\log1\\1.zip " " ")
> > >   print   z.namelist()
[ '1-2006.xml ',   '1-2007.xml ']

不支持gz文件:
> > >   z   =   zipfile.ZipFile( " " "C:\\Downloads\\ftp\\log1\\1.gz " " ")
Traceback   (most   recent   call   last):
    File   " <interactive   input> ",   line   1,   in   ?
    File   "C:\Python24\lib\zipfile.py ",   line   210,   in   __init__
        self._GetContents()
    File   "C:\Python24\lib\zipfile.py ",   line   230,   in   _GetContents
        self._RealGetContents()
    File   "C:\Python24\lib\zipfile.py ",   line   242,   in   _RealGetContents
        raise   BadZipfile,   "File   is   not   a   zip   file "
BadZipfile:   File   is   not   a   zip   file

这些gz文件都是在Linux下用gzip生成的。

有高人知道该怎么办吗?

[解决办法]
> > 问题严重了,我需要使用Python解压缩gz文件,并且这些gz文件里面都是包含着不只一个
> > 文件的压缩包。

你解压的是不是一个*.tar.gz的文件?*.tar.gz是先用tar把文件打包,再用gz把打包后的单个文件压缩。

所以如果你要解压的是*.tar.gz的文件,那么解压后确确实实应该是一个文件。

[解决办法]
好像确实是tar.gz,虽然扩展名只有gz。
[解决办法]
用tarfile试试,给你段代码:

import tarfile

targzfile = "xxxx.xml.gz "
outputpath = '. '

tar = tarfile.open(targzfile, "r:gz ")
for tarinfo in tar:
print tarinfo.name
tar.extract(tarinfo.name, outputpath)
tar.close()

自己修改下试试能否成功。祝好运。

[解决办法]
汗楼上的,怎么和我写得一样啊?

热点排行