Как удалить файл (глубоко) в папке ZIP в Python? - PullRequest
0 голосов
/ 22 января 2019

Я пишу скрипт, который извлекает 2 файла JSON из глубины (3 папки вниз) в ZIP-папку, изменяет ее содержимое и записывает эти файлы обратно в ту же папку. Единственная проблема заключается в том, что когда я записываю JSON-файлы обратно в папку, из которой они были изначально извлечены, они не перезаписываются, поэтому теперь у меня есть 4 файла с именем (product, product, package, package). Я хочу удалить или перезаписать неизмененные файлы, но не знаю как.

Я посмотрел, как это сделать в других потоках, и там написано, что он не поддерживается, но я надеялся, что к этому моменту уже кто-то решил эту проблему без необходимости выполнять процедуру «переписать весь каталог без старых файлов в новый ZIP». , Я также попытался записать в zip-файл режим 'w', но он просто удаляет все остальное содержимое zip-файла.

Вот как я записываю каждый файл обратно в ZIP-файл

zf = zipfile.ZipFile(ZipName, 'a')

zf.write('package.json',addressBook[0],compress_type = zipfile.ZIP_DEFLATED

zf.write('product.json',addressBook[1],compress_type = zipfile.ZIP_DEFLATED

...