标签: zipfile

417
推荐指数
11
解决办法
30万
查看次数

在python中解压缩文件

我通读了zipfile模块文档,但无法理解如何解压缩文件,只知道如何压缩文件.如何将zip文件的所有内容解压缩到同一目录中?

python zip unzip zipfile

367
推荐指数
8
解决办法
37万
查看次数

python:从zip打开文件而不临时解压缩

如何从zip存档中打开文件而不先解压缩?

我正在使用pygame.为了节省磁盘空间,我将所有图像都压缩了.是否可以直接从zip文件加载给定的图像?例如: pygame.image.load('zipFile/img_01')

python zipfile

60
推荐指数
4
解决办法
9万
查看次数

python zipfile模块似乎没有压缩我的文件

我做了一个小帮手功能:

import zipfile

def main(archive_list=[],zfilename='default.zip'):
    print zfilename
    zout = zipfile.ZipFile(zfilename, "w")
    for fname in archive_list:
        print "writing: ", fname
        zout.write(fname)
    zout.close()

if __name__ == '__main__':
    main()  
Run Code Online (Sandbox Code Playgroud)

问题是我的所有文件都没有被压缩!这些文件的大小相同,实际上只是扩展名被更改为".zip"(在本例中为".xls").

我在winXP sp2上运行python 2.5.

python compression zipfile

59
推荐指数
3
解决办法
2万
查看次数

python/zip:如果提供文件的绝对路径,如何消除zip存档中的绝对路径?

我在两个不同的目录中有两个文件,一个是'/home/test/first/first.pdf',另一个是'/home/text/second/second.pdf'.我使用以下代码来压缩它们:

import zipfile, StringIO
buffer = StringIO.StringIO()
first_path = '/home/test/first/first.pdf'
second_path = '/home/text/second/second.pdf'
zip = zipfile.ZipFile(buffer, 'w')
zip.write(first_path)
zip.write(second_path)
zip.close()
Run Code Online (Sandbox Code Playgroud)

我打开我创建的zip文件后,我有一个home在它的文件夹,然后有两个子文件夹在里面,firstsecond,则PDF文件.我不知道如何只包含两个pdf文件,而不是将完整路径压缩到zip存档中.我希望我的问题清楚,请帮忙.谢谢.

python zip absolute-path zipfile

53
推荐指数
4
解决办法
3万
查看次数

使用python将文件夹添加到zip文件

我想创建一个zip文件.将文件夹添加到zip文件,然后将一堆文件添加到该文件夹​​.

所以我想最终得到一个带有文件的单个文件夹的zip文件.

我不知道在zip文件中有文件夹或谷歌的东西是不是很糟糕的做法.

我从这开始:

def addFolderToZip(myZipFile,folder):
    folder = folder.encode('ascii') #convert path to ascii for ZipFile Method
    for file in glob.glob(folder+"/*"):
            if os.path.isfile(file):
                print file
                myZipFile.write(file, os.path.basename(file), zipfile.ZIP_DEFLATED)
            elif os.path.isdir(file):
                addFolderToZip(myZipFile,file)

def createZipFile(filename,files,folders):
    curTime=strftime("__%Y_%m_%d", time.localtime())
    filename=filename+curTime;
    print filename
    zipFilename=utils.getFileName("files", filename+".zip")
    myZipFile = zipfile.ZipFile( zipFilename, "w" ) # Open the zip file for writing 
    for file in files:
        file = file.encode('ascii') #convert path to ascii for ZipFile Method
        if os.path.isfile(file):
            (filepath, filename) = os.path.split(file)
            myZipFile.write( file, filename, zipfile.ZIP_DEFLATED )

    for folder in …
Run Code Online (Sandbox Code Playgroud)

python directory zip file zipfile

45
推荐指数
5
解决办法
7万
查看次数

如何使用Python的zipfile模块在ZIP文件中设置文件的权限(属性)?

当我从使用Python zipfile模块创建的ZIP文件中提取文件时,所有文件都不可写,只读等.

该文件是在Linux和Python 2.5.2下创建和提取的.

我可以说,我需要ZipInfo.external_attr为每个文件设置属性,但这似乎没有记录在任何我能找到的地方,有人可以启发我吗?

python zip attributes file-permissions zipfile

43
推荐指数
5
解决办法
2万
查看次数

将zipfile解压缩到内存?

如何将zip解压缩到内存中?

我尝试(返回None.getvalue()):

from zipfile import ZipFile
from StringIO import StringIO

def extract_zip(input_zip):
    return StringIO(ZipFile(input_zip).extractall())
Run Code Online (Sandbox Code Playgroud)

python memory zip zipfile stringio

42
推荐指数
2
解决办法
3万
查看次数

从zip中提取文件而不使用python ZipFile保留结构?

我尝试从包含一个文件夹中的子文件夹的.zip中提取所有文件.我希望子文件夹中的所有文件只在一个文件夹中提取,而不保留原始结构.此刻,我提取所有内容,将文件移动到文件夹,然后删除以前的子文件夹.具有相同名称的文件被覆盖.

在写文件之前可以这样做吗?

这是一个结构,例如:

my_zip/file1.txt
my_zip/dir1/file2.txt
my_zip/dir1/dir2/file3.txt
my_zip/dir3/file4.txt
Run Code Online (Sandbox Code Playgroud)

最后我告诉你:

my_dir/file1.txt
my_dir/file2.txt
my_dir/file3.txt
my_dir/file4.txt
Run Code Online (Sandbox Code Playgroud)

我可以在此代码中添加什么内容?

import zipfile
my_dir = "D:\\Download\\"
my_zip = "D:\\Download\\my_file.zip"

zip_file = zipfile.ZipFile(my_zip, 'r')
for files in zip_file.namelist():
    zip_file.extract(files, my_dir)
zip_file.close()
Run Code Online (Sandbox Code Playgroud)

如果我从zip_file.namelist()重命名文件路径,我有这个错误:

KeyError: "There is no item named 'file2.txt' in the archive"
Run Code Online (Sandbox Code Playgroud)

python extract unzip zipfile

41
推荐指数
4
解决办法
3万
查看次数

解压缩文件导致"BadZipFile:文件不是zip文件"

我有两个zip文件,它们都可以通过Windows资源管理器和7-zip打开.

然而,当我用Python的zipfile模块[zipfile.ZipFile("filex.zip")]打开它们时,其中一个打开但另一个给出错误" BadZipfile: File is not a zip file".

我确保后者是一个有效的Zip文件,用7-Zip打开并查看其属性(7Zip.ZIP说).当我用文本编辑器打开文件时,前两个字符是"PK",表明它确实是一个zip文件.

我正在使用Python 2.5,并且真的没有任何线索如何解决这个问题.我已经尝试过Windows和Ubuntu,并且两个平台都存在问题.

更新: Windows上的Python 2.5.4的回溯:

Traceback (most recent call last):
File "<module1>", line 5, in <module>
    zipfile.ZipFile("c:/temp/test.zip")
File "C:\Python25\lib\zipfile.py", line 346, in init
    self._GetContents()
File "C:\Python25\lib\zipfile.py", line 366, in _GetContents
    self._RealGetContents()
File "C:\Python25\lib\zipfile.py", line 378, in _RealGetContents
    raise BadZipfile, "File is not a zip file"
BadZipfile: File is not a zip file
Run Code Online (Sandbox Code Playgroud)

基本上,当_EndRecData调用函数从中央目录结束"记录中获取数据时,注释长度检出失败[endrec [7] == len(comment)].

函数中locals的值_EndRecData如下:

 END_BLOCK: 4096,
 comment: '\x00',
 data: '\xd6\xf6\x03\x00\x88,N8?<e\xf0q\xa8\x1cwK\x87\x0c(\x82a\xee\xc61N\'1qN\x0b\x16K-\x9d\xd57w\x0f\xa31n\xf3dN\x9e\xb1s\xffu\xd1\.....', (truncated)
 endrec: …
Run Code Online (Sandbox Code Playgroud)

python zipfile

37
推荐指数
4
解决办法
6万
查看次数