Что мне не хватает в этом коде (# вместо строки с комментариями в коде), чтобы файл test.py архивировался в zip-папке?создание zip-архива в python
#!/usr/bin/python
import zipfile,os
path='/home/user/Desktop'
def zipdir(path, zipf):
for file in os.walk(path):
#zipf.write(os.path.join(root,path))
if __name__ == "__main__":
zipf = zipfile.ZipFile('test.zip', 'w')
zipdir(path, zipf)
zipf.close()
http://stackoverflow.com/questions/1855095/how-to-create-a-zip- archive-of-a-directory – user1514631
@ user1514631 Почему в этом вопросе написано root вместо пути, внутри os.path.join? Можете ли вы объяснить мне эту часть? – commandos2389
os.walk (путь) возвращает список кортежей, первый элемент этого кортежа - это текущий каталог (который некорректно вызывает корень, и это изменяется, когда os.walk спускается в директории), путем объединения текущего корня с текущим filename, вы получите полный путь к текущему файлу. «Переменный» путь в связанном ответе - это начальный каталог, где начинается os.walk. Чтобы получить лучшее понимание, просто распечатайте корни, dirs, файлы в вашей zipdir-функции, таким образом вы обязательно увидите, что происходит. – user1514631