import os from pathlib import Path import logging # Set up basic logging to see the script's output logging.basicConfig(level=logging.INFO, format='[%(asctime)s]: %(message)s:') # Define the project name project_name = "cnnClassifier" # List of files and directories to be created list_of_files = [ ".github/workflows/.gitkeep", f"src/{project_name}/__init__.py", f"src/{project_name}/components/__init__.py", f"src/{project_name}/utils/__init__.py", f"src/{project_name}/config/__init__.py", f"src/{project_name}/config/configuration.py", f"src/{project_name}/pipeline/__init__.py", f"src/{project_name}/entity/__init__.py", f"src/{project_name}/constants/__init__.py", "config/config.yaml", "dvc.yaml", "params.yaml", "requirements.txt", "setup.py", "research/trials.ipynb", "templates/index.html" ] # Loop through the list of files to create them for filepath_str in list_of_files: filepath = Path(filepath_str) # Convert string path to a Path object for robustness filedir, filename = os.path.split(filepath) # 1. Create the directory if it doesn't exist if filedir != "": os.makedirs(filedir, exist_ok=True) logging.info(f"Creating directory: {filedir} for the file {filename}") # 2. Create the file if it doesn't exist or is empty if (not os.path.exists(filepath)) or (os.path.getsize(filepath) == 0): with open(filepath, "w") as f: pass # Creates an empty file logging.info(f"Creating empty file: {filepath}") else: logging.info(f"{filename} already exists")