2025-04-26 04:13:07 +02:00
# README for TreeScanner
2025-04-26 03:02:58 +02:00
2025-04-27 20:58:18 +02:00

2025-04-26 04:13:07 +02:00
Ein flexibler Verzeichnisscanner für die Kommandozeile und zur Einbindung als Python-Modul.
2025-04-26 03:02:58 +02:00
2025-04-27 20:58:18 +02:00
## 📁 Projektstruktur
2025-04-26 03:02:58 +02:00
```plaintext
2025-04-26 04:13:07 +02:00
📁 treescannerASCII/ # Projekt-Root
├── 📁 media # Bilder/Icons für GitHub, Ausgabe etc.
├── 📄 .gitignore # Ignorierte Dateien
├── 📄 CHANGELOG.md # Änderungsprotokoll (Markdown)
2025-04-27 20:58:18 +02:00
├── 📄 LICENSE.md # Lizenzdatei (MIT)
2025-04-26 04:13:07 +02:00
├── 📄 README.md # Diese Anleitung
├── 📄 TODO.md # Offene Aufgaben
2025-04-27 20:58:18 +02:00
├── 📄 scanner.py # Hauptimplementierung (Standalone und Modul)
├── 📄 __init__ .py # Modul-Initialisierung (optional, vorbereitet)
├── 📄 __main__ .py # Einstiegspunkt für `python -m treescanner` (optional, vorbereitet)
2025-04-26 04:13:07 +02:00
└── 📄 test_usage.py # Beispiel für Modul-Integration
2025-04-26 03:02:58 +02:00
```
2025-04-26 04:13:07 +02:00
## 🔧 Standalone-Ausführung (CLI)
2025-04-26 03:02:58 +02:00
```bash
2025-04-27 20:58:18 +02:00
python scanner.py [root_path] [-n N] [-d DEPTH] [--no-align-comments] [-l {de,en}] [-h]
2025-04-26 03:02:58 +02:00
```
2025-04-27 20:58:18 +02:00
| Parameter | Beschreibung |
|-----------------------------|--------------------------------------------------------------------------------------------------------------|
| `root_path` | Optionales Verzeichnis, ab dem gescannt wird (Default: aktueller Pfad). |
| `-n` , `--max-files-per-dir` | Begrenze die Anzahl an Dateien pro Verzeichnis (Default: 2). |
| `-d` , `--max-depth` | Maximale Tiefe der Rekursion; unbegrenzt, wenn nicht gesetzt. |
| `--no-align-comments` | Deaktiviert die Ausrichtung der Kommentar-Platzhalter am Zeilenende. |
| `-l` , `--language` | Sprache der Abschlussmeldung (`de` für Deutsch, `en` für Englisch; Default: `de` ). |
| `-h` , `--help` | Zeigt diese Hilfe an und beendet das Programm. |
**Ausgabe:**
2025-04-26 04:13:07 +02:00
2025-04-27 20:58:18 +02:00
- Baumstruktur wird in die Datei `tree.txt` geschrieben.
- Nach Abschluss erfolgt eine Zusammenfassung (Anzahl Verzeichnisse/Dateien, Name der Ausgabedatei).
2025-04-26 03:02:58 +02:00
## 🧩 Verwendung als Modul
```python
2025-04-27 20:58:18 +02:00
from scanner import TreeScanner, TreeScannerConfig
2025-04-26 03:02:58 +02:00
2025-04-26 04:13:07 +02:00
config = TreeScannerConfig(
2025-04-27 20:58:18 +02:00
root_path="./", # zu scannender Pfad
max_depth=3, # maximale Rekursionstiefe
max_files_per_dir=5, # bis zu 5 Dateien pro Ordner anzeigen
align_comments=True, # Kommentare ausrichten
language="de" # Sprache der Ausgabe
2025-04-26 04:13:07 +02:00
)
2025-04-26 03:02:58 +02:00
scanner = TreeScanner(config)
output = scanner.generate_tree()
print(output)
```
2025-04-26 04:13:07 +02:00
> Hinweis: Alle Klassen und Methoden sind mit **Google-Style Docstrings** versehen. Moderne IDEs (VS Code, PyCharm) zeigen so direkt Parameter und Rückgabetypen als Tooltip an.
## ⚙️ Konfiguration via `TreeScannerConfig`
2025-04-26 03:02:58 +02:00
2025-04-27 20:58:18 +02:00
| Attribut | Typ | Beschreibung |
|-----------------------------|--------------------|---------------------------------------------------------------------|
| `root_path: str` | String | Basisverzeichnis zum Scannen (Default: `.` ) |
| `folder_icon: str` | Unicode-Zeichen | Symbol für Verzeichnisse (Default: 📁) |
| `file_icon: str` | Unicode-Zeichen | Symbol für Dateien und Platzhalter (Default: 📄) |
| `max_files_per_dir: int` | Ganzzahl | Maximale angezeigte Dateien pro Verzeichnis (Default: 2) |
| `max_depth: Optional[int]` | Ganzzahl oder None | Maximale Rekursionstiefe; `None` = unbegrenzt |
| `align_comments: bool` | Bool | Kommentare am Zeilenende ausrichten (Default: `True` ) |
| `language: str` | String | Sprache der Zusammenfassung (`de` oder `en` ) (Default: `de` ) |
2025-04-26 03:02:58 +02:00
2025-04-27 20:58:18 +02:00
## 📄 Beispielausgabe (tree.txt)
2025-04-26 04:13:07 +02:00
```plaintext
📁 treescannerASCII/
├── 📁 media
│ ├── 📄 favicon.ico
│ ├── 📄 logo-bw-1024x1024.png
│ └── 📄 < und 3 weitere Dateien >
├── 📄 .gitignore
├── 📄 CHANGELOG.md
├── 📄 README.md
└── 📄 < und 12 weitere Dateien >
```
2025-04-26 03:02:58 +02:00
2025-04-27 20:58:18 +02:00
## 📋 Aktuelle Funktionen
- Ausgabe einer ASCII-Verzeichnisstruktur
- Begrenzung der Dateiausgabe pro Verzeichnis
- Begrenzung der Rekursionstiefe
- Optionale Ausrichtung der Kommentarzeile am Ende
- Mehrsprachige Abschlussmeldung (Deutsch, Englisch)
- Ausgabe als Textdatei (`tree.txt` )
- Saubere Google-Style Docstrings für IDE-Kompatibilität
- Modularer Aufbau für spätere Erweiterungen
## 🛡️ Geplante Erweiterungen
- Bessere Fehlerbehandlung bei ungültigem Pfad (anstatt Absturz)
- Farbliche Ausgabe der Baumstruktur in der Konsole (optional)
- Konfigurierbare Ausgabe-Datei über CLI
- Vorbereitung für Unicode-optimierte Konsolen
2025-04-26 03:02:58 +02:00
## 📄 Lizenz
2025-04-27 20:58:18 +02:00
MIT – siehe [LICENSE.md ](./LICENSE.md )