Форум сайта python.su
0
Есть ли возможность с помощью уже имеющегося в python модуля Zipfile заменить файл в архиве?
Пока все попытки не увенчались успехом:
В данном случае в архиве рядом с существующим файлом resources.arsc создается новый, не заменяя его:
import zipfile sys1 = zipfile.ZipFile('SystemUI.apk', 'a') sys1.write('resources.arsc','resources.arsc') sys1.close()
import zipfile sys1 = zipfile.ZipFile('SystemUI.apk', 'w') sys1.write('resources.arsc','resources.arsc') sys1.close()
Отредактировано heso (Ноя. 11, 2013 11:22:08)
Офлайн
31
# coding: utf8 from zipfile import ZipFile zin = ZipFile('1.zip', 'w') zout = ZipFile('1.zip', 'w') for item in zin.infolist(): buf = zin.read(item) if item != 'check.txt': zout.writestr(item, buf) zin.close() # Добавление файла в архив zout.write('1.zip', 'z.txt') # Добавление буфера/строки в архив как файл #zout.writestr('check.txt', 'buffer with data') zout.close()
Отредактировано sanodin (Ноя. 11, 2013 13:05:27)
Офлайн
0
sanodinВ том и дело. По сути мог бы, как говорил, распаковать в отдельную папку - там поудалять ненужное, и обратно упаковать.
но здесь перезапись архива
pd = subprocess.Popen(['путь до 7z.exe', 'a', 'SystemUI.zip', '-mx0', './resources.arsc'], stdout=PIPE, stderr=PIPE) stdout, stderr = pd.communicate()
Офлайн