|
|
@@ -2,6 +2,7 @@ import csv
|
|
|
import os
|
|
|
import shutil
|
|
|
from dataclasses import dataclass
|
|
|
+from datetime import datetime
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
|
@@ -34,6 +35,18 @@ def read_csv(csv_path: Path) -> list[dict[str, str]]:
|
|
|
return list(csv.DictReader(csv_file, delimiter=";"))
|
|
|
|
|
|
|
|
|
+def rename_existing_target(target: Path) -> Path:
|
|
|
+ created_at = datetime.fromtimestamp(target.stat().st_birthtime)
|
|
|
+ timestamp = created_at.strftime("%Y%m%d-%H%M%S")
|
|
|
+ renamed_target = target.with_name(f"{target.stem}_{timestamp}{target.suffix}")
|
|
|
+ counter = 1
|
|
|
+ while renamed_target.exists():
|
|
|
+ renamed_target = target.with_name(f"{target.stem}_{timestamp}_{counter}{target.suffix}")
|
|
|
+ counter += 1
|
|
|
+ target.rename(renamed_target)
|
|
|
+ return renamed_target
|
|
|
+
|
|
|
+
|
|
|
def move_files(
|
|
|
files_csv: Path,
|
|
|
clients_csv: Path,
|
|
|
@@ -64,9 +77,12 @@ def move_files(
|
|
|
target_directory = desktop_directory / "PC-Visit" / customer
|
|
|
target_directory.mkdir(parents=True, exist_ok=True)
|
|
|
target = target_directory / source.name
|
|
|
- if source.resolve() == target.resolve() or target.exists():
|
|
|
+ if source.resolve() == target.resolve():
|
|
|
skipped_count += 1
|
|
|
continue
|
|
|
+ if target.exists():
|
|
|
+ renamed_target = rename_existing_target(target)
|
|
|
+ print(f"Vorhandene Datei umbenannt: {target} -> {renamed_target}")
|
|
|
shutil.move(str(source), str(target))
|
|
|
print(f"Datei verschoben: {source} -> {target}")
|
|
|
moved_count += 1
|