Я хочу создать почтовый файл. Добавьте папку в 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] Permission denied: '..\packed\bin'
Любая помощь приветствуется.
Смежный вопрос: Как мне сжать содержимое папки, используя python (версия 2.5)?