Monday, 25 April 2022

How to clean the data, image or video inside a folder in ubuntu periodically?

step: how to run it in a crontab?

0 0 * * * /usr/bin/python3 /home/ninja/Documents/cleaner.py

code:-

---

import os
import shutil
import time
from datetime import datetime,timedelta


days = 60

# main function
def main(path):

    # initializing the count
    deleted_folders_count = 0
    deleted_files_count = 0

    # specify the path
    #path = "/home/ninja/Desktop/old/"

    # converting days to seconds
    # time.time() returns current time in seconds
    seconds = time.time() - (days * 24 * 60 * 60)

    # checking whether the file is present in path or not
    if os.path.exists(path):
       
        # iterating over each and every folder and file in the path
        for root_folder, folders, files in os.walk(path):

            # comparing the days

                        # checking the current directory files
                        for file in files:

                                # file path
                                file_path = os.path.join(root_folder, file)

                                # comparing the days
                                if seconds >= get_file_or_folder_age(file_path):

                                        # invoking the remove_file function

                                        remove_file(file_path)
                                        deleted_files_count += 1 # incrementing count



    print(f"Total folders deleted: {deleted_folders_count}")
    print(f"Total files deleted: {deleted_files_count}")

    

def remove_folder(path):

    # removing the folder
    if not shutil.rmtree(path):

        # success message
        print(f"{path} is removed successfully")

    else:

        # failure message
        print(f"Unable to delete the {path}")


def remove_file(path):

    # removing the file
    if not os.remove(path):

        # success message
        print(f"{path} is removed successfully")

    else:

        # failure message
        print(f"Unable to delete the {path}")


def get_file_or_folder_age(path):

    # getting ctime of the file/folder
    # time will be in seconds
    ctime = os.stat(path).st_ctime

    # returning the time
    return ctime



if __name__ == '__main__':

    main("/media/ninja/output/videos/")

    #main("/media/ninja/output/VA_logs/")

No comments:

Post a Comment