Форум сайта python.su
0
doza_and
А вам не кажется что для стандартных задачек лучше использовать стандартный подход:
import subprocess as sp
sp.check_call(“7z a -tzip arhname dirname”)
Меньше писанины, выше быстродействие, больше степень сжатия, намного меньше вероятность возникновения ошибок. Необходимость ручной сборки архива требует специального обоснования.
Отредактировано vladimirse (Сен. 5, 2013 20:38:25)
Офлайн
31
поправь , будет и пустые директории архивировать
# coding: cp1251 import os, zipfile yourfolder = 'folder' arch = zipfile.ZipFile('test.zip', 'w', zipfile.ZIP_DEFLATED) for root, dirs, files in os.walk(yourfolder): print root+'\\'+str(files) for tarfile in files: #if tarfile != '': arch.write(root+'\\'+tarfile.decode('cp1251')) arch.write(root.decode('cp1251')) arch.close()
Отредактировано sanodin (Сен. 5, 2013 12:14:12)
Офлайн
0
sanodin
# coding: cp1251
import os, zipfile
yourfolder = ‘folder’
arch = zipfile.ZipFile('test.zip', ‘w’, zipfile.ZIP_DEFLATED)
for root, dirs, files in os.walk(yourfolder):
print root+'\\'+str(files)
for tarfile in files:
#if tarfile != ‘':
arch.write(root+’\\'+tarfile.decode('cp1251'))
arch.write(root.decode('cp1251'))
arch.close()

Офлайн
31
Офлайн
0
Спасибо! )
Офлайн