CCCPaste

recurce finder files

import os
import random

BASE_DIR = os.path.dirname(__file__)
TARGETS = ['mp4', 'avi', 'mov']
SAVE_DIR = '.__DATA__'
FILTERS = [SAVE_DIR]
IGNORE_DUPLICATE_FILES = True

if not os.path.exists(SAVE_DIR):
    os.mkdir(SAVE_DIR)


def check_file_in_filters(file_name: str):
    if file_name in FILTERS:
        return True
    return False


def copy_file(file: str, file_name: str):
    with open(file, mode='rb') as f_in, open(f'{BASE_DIR}\\{SAVE_DIR}\\{file_name}', mode='ab') as f_out:
        for line in f_in:
            f_out.write(line)


def get_file_extension(file_name: str):
    return file_name[file_name.rfind('.')+1:]


def search(path=BASE_DIR):
    try:
        if os.path.isdir(path):
            lst_dir = os.listdir(path)
        else:
            return
    except PermissionError as _:
        return

    for file_name in lst_dir:
        if check_file_in_filters(file_name):
            continue

        if os.path.isdir(f'{path}\\{file_name}'):
            search(f'{path}\\{file_name}')
        else:
            print(f'Checking file: {path}\\{file_name}')
            if get_file_extension(file_name) in TARGETS:

                if os.path.exists(f'{BASE_DIR}\\{SAVE_DIR}\\{file_name}'):
                    if IGNORE_DUPLICATE_FILES:
                        continue
                    else:
                        file_name = f'{file_name}_{str(random.random())}'

                print('Coping...')
                copy_file(f'{path}\\{file_name}', file_name)
                print(f'{path}\\{file_name} copied!')
            else:
                print('Not suitable!')


search()
print('Done.')