Module: move_files
File: C:\Users\korde\Home\Github\task-runner-SDLC\src\tools\move_files.py
Language: Python
Imports
from pathlib import Pathimport jsonimport shutilfrom utils.logger import setup_logging
Functions
clean_folder(folder = '.', patterns = None, destination = None)
Clean a folder by organizing files into categories. Simplified interface for common use case.
Args: folder (str): Folder to clean (default: current directory) patterns (str): Patterns file (default: file_patterns.json) destination (str): Where to create organized folders (default: same as folder)
Parameters
folder— defaults to'.'patterns— defaults toNonedestination— defaults toNone
create_patterns_sample(output_file = 'file_patterns.json')
Create a sample patterns JSON file.
Args: output_file (str): Path where to create the sample file
Parameters
output_file— defaults to'file_patterns.json'
ensure_directories_exist(*dirs)
Create directories if they don't exist
Parameters
*dirs
get_unique_filename(destination_path, filename)
Generate a unique filename by appending version numbers if duplicates exist.
Args: destination_path (Path): The destination directory filename (str): The original filename
Returns: str: A unique filename
Parameters
destination_pathfilename
move_files_to_directory(source_path, file_patterns, destination, logger)
Move files with duplicate handling and logging
Parameters
source_pathfile_patternsdestinationlogger
organize_files(source_directory, destination_directory, patterns_file, log_directory = None)
Organize files from a source directory to categorized directories based on file patterns. Handles duplicates by renaming with version numbers and logs all operations.
Args: source_directory (str): The directory to scan and clean files from. destination_directory (str): The root directory where categorized folders will be created. patterns_file (str): Path to the JSON file containing file patterns. log_directory (str, optional): Directory to store log files. If None, uses destination_directory/logs.
Parameters
source_directorydestination_directorypatterns_filelog_directory— defaults toNone
validate_paths(source, destination, patterns)
Validate that all required paths exist and are accessible
Parameters
sourcedestinationpatterns