Search code examples
pythonpython-3.xarchivefme

Archiving Files Using Python Apart from Latest File


I am trying to archive existing file apart from the latest modified file in Python or FME. I have managed to get it to point where I can get python pick up the latest modified file but any ideas on how I can archive all the files i have in my folder apart from the last modified file?

Thank You


Solution

  • You can solve your problem using this snippet of code:

    import glob
    import os
    import zipfile
    
    files_dir = r'C:\Users\..\files' # 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)