file-organizer/src/filemoving.py
Jose134 bbef192a05
All checks were successful
gitea/file-organizer/pipeline/head This commit looks good
Install czkawka via download in dockerfile + fix uvicorn dependency
2025-02-02 03:06:22 +01:00

36 lines
1.2 KiB
Python

import os
import shutil
import re
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
def group_files_by_prefix(directory, downloading_files, patterns):
if not os.path.isdir(directory):
logger.error(f"The directory {directory} does not exist.")
return
files = [f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))]
for file in files:
skip = False
for downloading_file in downloading_files:
if file.startswith(downloading_file):
logger.info(f"File {file} is downloading. Skipping...")
skip = True
continue
if skip:
continue
for pattern_str in patterns:
pattern = re.compile(pattern_str)
match = pattern.match(file)
if match:
prefix_dir = os.path.join(directory, match.group(1))
if not os.path.exists(prefix_dir):
os.makedirs(prefix_dir)
shutil.move(os.path.join(directory, file), os.path.join(prefix_dir, file))