Я пытаюсь создать функцию в моем script, которая застегивает содержимое данного исходного каталога (src
) в zip файл (dst
). Например, zip('/path/to/dir', '/path/to/file.zip')
, где /path/to/dir
- это каталог, а /path/to/file.zip
еще не существует. Я не хочу заархивировать саму директорию, это делает всю разницу в моем случае. Я хочу заархивировать файлы (и поддиры) в каталоге. Это то, что я пытаюсь:
def zip(src, dst):
zf = zipfile.ZipFile("%s.zip" % (dst), "w")
for dirname, subdirs, files in os.walk(src):
zf.write(dirname)
for filename in files:
zf.write(os.path.join(dirname, filename))
zf.close()
Это создает почтовый индекс, по существу /
. Например, если я zipped /path/to/dir
, извлечение zip создает каталог с "path" в нем, с "to" в этом каталоге и т.д.
Есть ли у кого-нибудь функция, которая не вызывает этой проблемы?
Я не могу это подчеркнуть, ему требуется, чтобы zip файлы в каталоге, а не сама directoy.