Что добавить чтобы python рекурсивно записывал файлы из папки в архив а не только саму папку?

import os  
import time  
import zipfile


source = 'C:\\Users\\PCuser\\Documents\\folder'  
target_dir = 'C:\\Users\\PCuser\\Downloads'

now = time.strftime('%H%M%S')  
target = now + '.zip'

newzip = zipfile.ZipFile(target_dir + os.sep + target, "w")

newzip.write(source)  
newzip.close()

Ответы (1 шт):

Автор решения: MihailPy

Попробуйте вот так.

import os  
import time  
import zipfile

source = 'C:\\Users\\PCuser\\Documents\\folder\'  
target_dir = 'C:\\Users\\PCuser\\Downloads'

now = time.strftime('%H%M%S')  
target = now + '.zip'

newzip = zipfile.ZipFile(target_dir + target, 'w')   # Создание нового архива
for root, dirs, files in os.walk(source):            # Список всех файлов и папок в директории folder
    for file in files:
       newzip.write(os.path.join(root,file))         # Создание относительных путей и запись файлов в архив

newzip.close()
→ Ссылка