С Python, как я могу гарантировать, что сжатие папки происходит внутри определенной папки?

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

уточнение вопроса с примером кода:

Кто-то любезно указал, что мой вопрос сбивает с толку, но для новичка на питоне много вещей сбивают с толку:) - мои предварительные извинения, если этот вопрос слишком простой или ответ очевиден. Я не знаю, как я могу убедиться, что полученный zip-файл находится внутри папки, которая была заархивирована. Другими словами, я бы хотел, чтобы процесс 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

1 ответ

Решение

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

Другие вопросы по тегам