Архивировать самую старую дату, измененную папку и переместить в другую папку - PullRequest
1 голос
/ 16 января 2020

Я пытаюсь заархивировать самую старую папку с измененной датой и перейти в другую папку.

Моя структура папок в настоящее время c: \ test \ test1 (последняя папка) и c: \ test \ test2 и c: \ test \ test3

Я бы хотел заархивировать test2 и test 3, так как они являются самыми старыми измененными папками и переместить их в другое место, например c: \ archive

Мне удалось заставить его работать, чтобы заархивировать самую старую папку, но она не перемещает ее, а также не перемещает в другую папку, которую я хотел бы, чтобы мой архив оставался чистым.

Также было бы неплохо иметь zipfolder с archive_date.zip

import glob
import os
import zipfile

files_dir = r'c:\test\' # here should be path to directory with your files
files = glob.glob(files_dir + '\*')
# find all files that located in specified directory
files_modify_dt = [os.path.getmtime(file) for file in files]
# take files except last modified file
files_to_zip = [file for _, file in sorted(zip(files_modify_dt, files))][:-1]
# zip of selected files
with zipfile.ZipFile(os.path.join(files_dir, 'archive.zip'), 'w', zipfile.ZIP_DEFLATED) as zip_obj:
    for file in files_to_zip:
        zip_obj.write(file, os.path.basename(file))
        os.remove(file)
...