Если вы не знакомы с настройкой chrontab, вы можете настроить их, выполнив this (Я искал для Mac конкретный, но есть миллионы руководств по этому поводу.)
Ваш скрипт архивирования может быть довольно простым. Начните с создания списка файлов для архивирования (см. этот ответ.)
import datetime as dt
import time
import os
import zipfile
now = dt.datetime.now()
ago = now-dt.timedelta(days=1)
В отличие от указанного в ответе, мы хотим получить список файлов, а не вывод print
ed. Таким образом, мы инициализируем список и append
к нему на каждой итерации. Здесь я предполагаю, что ваш сценарий живет в вашей папке загрузок, но вы можете изменить путь, указанный на os.walk
, в зависимости от ситуации.
to_archive = []
for root, dirs,files in os.walk('.'):
for fname in files:
path = os.path.join(root, fname)
st = os.stat(path)
mtime = dt.datetime.fromtimestamp(st.st_mtime)
if mtime > ago:
to_archive.append(path)
Мы также хотим strftime
представление now
для заголовка нашего архивного файла.
ts = now.strftime("%m_%d_%Y")
Наконец, запишите файлы в архивный файл (в данном случае я выбрал формат zip
).
with zipfile.ZipFile('{}_archive.zip'.format(ts), 'w') as myzip:
for x in to_archive:
myzip.write(x)