我想创建一个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”
任何帮助都非常欢迎。
好的,在我理解了您想要的内容之后,它就像使用的第二个参数一样简单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] 删除。
我来说两句