Как с помощью Python обеспечить сжатие папки внутри определенной папки?

Мне удалось заархивировать содержимое моей папки. Но я бы хотел, чтобы заархивированный файл оставался в только что сжатой папке. Например, я заархивировал папку под названием test на моем диске C :. Но я бы хотел, чтобы мой файл test.zip находился в папке C: \ test. Как я могу это сделать? Заранее спасибо.

пояснение вопроса на примере кода:

Кто-то любезно заметил, что мой вопрос сбивает с толку, но для новичка в Python много чего сбивает с толку :) - приношу свои извинения заранее, если этот вопрос слишком простой или ответ очевиден. Я не знаю, как я могу гарантировать, что полученный zip-файл находится внутри заархивированной папки. Другими словами, я бы хотел, чтобы процесс архивирования происходил в «basedir». Таким образом, пользователь не будет тратить время на его поиск где-нибудь на диске C.


def zip_folder(basedir, zip_file): z = zipfile.ZipFile(zip_file, 'w', zipfile.ZIP_DEFLATED) for dirpath, dirnames, filenames in os.walk(basedir): print "zipping files:" for fn in filenames: print fn absfn = os.path.join(dirpath, fn) z.write(absfn) z.close


person Amara    schedule 20.11.2008    source источник
comment
Вы не имеете особого смысла. Похоже, вам просто нужно создать свой zip-файл в нужном месте, используя путь к файлу, а не просто имя файла.   -  person ddaa    schedule 21.11.2008


Ответы (1)


Все, что вы передаете в качестве zip_file своей функции, будет файлом, в который будет записывать объект ZipFile. Итак, если вы пройдете полный путь, он будет помещен туда. Если вы передадите ему просто имя файла, оно будет записано в это имя файла по текущему рабочему пути. Похоже, вам просто нужно убедиться, что zip_file - это абсолютный путь.

person Jeremy Cantrell    schedule 20.11.2008