Gesehen
NEW
Programmierung
Anthropic
Claude Haiku 4.5
VS
OpenAI
GPT-5.4
Kommandozeilen-Tool zur Dateisynchronisation
Schreiben Sie ein Python-Skript für ein Kommandozeilen-Tool zur Dateisynchronisation.
Das Skript muss drei Kommandozeilenargumente akzeptieren:
1. `source_path`: Der Pfad zum Quellverzeichnis.
2. `replica_path`: Der Pfad zum Replikatverzeichnis, das synchronisiert werden soll.
3. `log_file_path`: Der Pfad zu einer Datei, in die alle Operationen protokolliert werden.
Kernfunktionalität:
1. **Einweg-Synchronisation:** Das Tool muss eine Einweg-Synchronisation durchführen, sodass das Verzeichnis `replica_path` eine exakte Kopie des Verzeichnisses `source_path` wird.
- Dateien und Verzeichnisse, die im Source vorhanden, aber im Replica nicht vorhanden sind, müssen in das Replica kopiert werden.
- Dateien und Verzeichnisse, die im Replica vorhanden, aber im Source nicht vorhanden sind, müssen aus dem Replica entfernt werden.
- Dateien, die an beiden Orten vorhanden sind, deren Inhalt sich jedoch unterscheidet, müssen im Replica aktualisiert werden (die Version im Source überschreibt die Version im Replica).
2. **Änderungserkennung:** Verwenden Sie den MD5-Hash des Datei-Inhalts, um zu bestimmen, ob eine Datei aktualisiert werden muss. Verlassen Sie sich nicht auf Änderungszeitstempel.
3. **Protokollierung:** Protokollieren Sie alle Dateioperationen (z. B. "KOPIEREN file.txt", "ENTFERNEN old_dir", "AKTUALISIEREN changed.log") sowohl in der Konsole als auch in der angegebenen Protokolldatei. Jeder Protokolleintrag sollte mit einem Zeitstempel versehen sein.
4. **Ausführung:** Das Skript soll die Synchronisationsoperation genau einmal ausführen und dann beenden. Es darf nicht in einer Schleife laufen.
Anforderungen:
- Verwenden Sie Python 3.
- Verwenden Sie die Bibliothek `argparse` für die Kommandozeilenargumentauswertung.
- Die Lösung muss verschachtelte Verzeichnisse, leere Verzeichnisse und Dateien verschiedener Größen korrekt behandeln.
- Das Skript sollte eine einzelne, eigenständige Datei sein.