С 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 - это абсолютный путь.