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

Mizipzor:

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

因此,我想得到一个压缩文件,里面只有一个文件夹。

我不知道在zip文件或其他内容中包含文件夹是否是一种不好的做法,但是google在这个问题上没有给我任何帮助。

我从这个开始:

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  folders:   
        addFolderToZip(myZipFile,folder)  
    myZipFile.close()
    return (1,zipFilename)


(success,filename)=createZipFile(planName,files,folders);

摘自:http : //mail.python.org/pipermail/python-list/2006-August/396166.html

它将删除所有文件夹,并将目标文件夹(及其子文件夹)中的所有文件放入单个zip文件中。我无法添加整个文件夹。

如果将路径输入到myZipFile.write中的文件夹,则会得到

IOError:[Errno 13]权限被拒绝:“ .. \ packed \ bin”

任何帮助都非常欢迎。

相关问题:如何使用python(2.5版)压缩文件夹的内容?

RSabet:

好的,在我理解了您想要的内容之后,它就像使用的第二个参数一样简单zipfile.write,您可以在其中使用所需的任何内容:

import zipfile
myZipFile = zipfile.ZipFile("zip.zip", "w" )
myZipFile.write("test.py", "dir\\test.py", zipfile.ZIP_DEFLATED )

创建一个zipfile,test.py将其解压缩到名为dir

编辑:我曾经不得不在zip文件中创建一个空目录:这是可能的。在上面的代码之后,只需从zip文件中删除文件test.py,文件就消失了,但是空目录仍然存在。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

linux如何将文件添加到zip文件中的特定文件夹

使用Ionic.Zip在ASP中创建zip文件时,如何将文件夹添加到文件夹

使用批处理将文件添加到zip文件夹

如何将根文件夹添加到使用7zip归档的文件中

使用folium将文件夹链接添加到python geocoder中

将文件夹添加到罐子中

使用python zipfile命令将类文件替换/添加到jar中的子文件夹

通过使用python给出包含图像的文件夹的路径,将多个图像添加到word文件中

使用Maven将资源文件夹下的文件添加到zip中

使用CMake自动将文件夹中的所有文件添加到目标吗?

如何使用bitbake将文件夹或文件添加到配方的根目录中?

如何使用 Python 将文件夹添加到 Windows PATH?

将文件系统中的文件添加到 jar 中的特定文件夹

将文件夹的名称添加到该文件夹中的所有`.bin`文件中

使用Python将文件列表添加到zip文件中

将文件夹中的文件添加到Android应用程序中的列表中

Docker将所有文件夹文件添加到现有文件夹中,无需替换

如何将框架添加到 Xcode Playground 的“Sources”文件夹中的文件中?

无法将文件夹添加到.profile文件中的PATH

Windows CMD:将后缀添加到文件夹中的所有文件

将文件夹中的文件名添加到DropDownList。(asp.net)

Bash脚本将单个随机字符添加到文件夹中的所有文件

android-将图像从可绘制文件夹添加到创建的文件目录中

将文件夹中的所有jar文件添加到类路径

如何将文件和文件夹添加到GitHub存储库中?

如何将Java类添加到jar文件中的文件夹

以递归方式将文件夹中的cpp文件添加到“编译源”

将主机名添加到文件夹(bash)中的所有文件

如何将文件夹文件的修改日期添加到GridView中?