gc-server3 1 тиждень тому
батько
коміт
7664db9ce8
1 змінених файлів з 17 додано та 1 видалено
  1. 17 1
      move_files.py

+ 17 - 1
move_files.py

@@ -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