# file_utils | |
import os | |
import utils.constants as constants | |
import shutil | |
from pathlib import Path | |
def cleanup_temp_files(): | |
for file_path in constants.temp_files: | |
try: | |
os.remove(file_path) | |
except Exception as e: | |
print(f"Failed to delete temp file {file_path}: {e}") | |
def rename_file_to_lowercase_extension(image_path: str) -> str: | |
""" | |
Renames only the file extension to lowercase by copying it to the temporary folder. | |
Parameters: | |
image_path (str): The original file path. | |
Returns: | |
str: The new file path in the temporary folder with the lowercase extension. | |
Raises: | |
Exception: If there is an error copying the file. | |
""" | |
path = Path(image_path) | |
new_suffix = path.suffix.lower() | |
new_path = path.with_suffix(new_suffix) | |
# Make a copy in the temporary folder with the lowercase extension | |
if path.suffix != new_suffix: | |
try: | |
shutil.copy(path, new_path) | |
constants.temp_files.append(str(new_path)) | |
return str(new_path) | |
except FileExistsError: | |
raise Exception(f"Cannot copy {path} to {new_path}: target file already exists.") | |
except Exception as e: | |
raise Exception(f"Error copying file: {e}") | |
else: | |
return str(path) |