11# README for TreeScanner
22
3+ ![ LOGO] ( ./media/logo-colour-alpha-512x512.png )
4+
35Ein flexibler Verzeichnisscanner für die Kommandozeile und zur Einbindung als Python-Modul.
46
5- ## Projektstruktur
7+ ## 📁 Projektstruktur
68
79``` plaintext
810📁 treescannerASCII/ # Projekt-Root
911├── 📁 media # Bilder/Icons für GitHub, Ausgabe etc.
1012├── 📄 .gitignore # Ignorierte Dateien
1113├── 📄 CHANGELOG.md # Änderungsprotokoll (Markdown)
12- ├── 📄 LICENSE # Lizenzdatei (MIT)
14+ ├── 📄 LICENSE.md # Lizenzdatei (MIT)
1315├── 📄 README.md # Diese Anleitung
1416├── 📄 TODO.md # Offene Aufgaben
15- ├── 📄 __init__ .py # Modul-Initialisierung
16- ├── 📄 __main__ .py # Einstiegspunkt für `python -m treescanner`
17- ├── 📄 scanner .py # Hauptimplementierung
17+ ├── 📄 scanner .py # Hauptimplementierung (Standalone und Modul)
18+ ├── 📄 __init__ .py # Modul-Initialisierung (optional, vorbereitet)
19+ ├── 📄 __main__ .py # Einstiegspunkt für `python -m treescanner` (optional, vorbereitet)
1820└── 📄 test_usage.py # Beispiel für Modul-Integration
1921```
2022
2123## 🔧 Standalone-Ausführung (CLI)
2224
2325``` bash
24- python scanner.py [root_path] [-n N] [-d DEPTH] [--no-align-comments] [-h]
26+ python scanner.py [root_path] [-n N] [-d DEPTH] [--no-align-comments] [-l {de,en}] [- h]
2527```
2628
27- | Parameter | Beschreibung |
28- | -------------------------| ---------------------------------------------------------------------------------------------------------------|
29- | ` root_path ` | Optionales Verzeichnis, ab dem gescannt wird (Default: aktueller Pfad). |
30- | ` -n ` , ` --max-files-per-dir ` | Begrenze die Anzahl an Dateien pro Verzeichnis (Default: 2). |
31- | ` -d ` , ` --max-depth ` | Maximale Tiefe der Rekursion; unbegrenzt, wenn nicht gesetzt. |
32- | ` --no-align-comments ` | Deaktiviert die Ausrichtung der Kommentar-Platzhalter am Zeilenende. |
33- | ` -h ` , ` --help ` | Zeigt diese Hilfe an und beendet das Programm. |
29+ | Parameter | Beschreibung |
30+ | -----------------------------| --------------------------------------------------------------------------------------------------------------|
31+ | ` root_path ` | Optionales Verzeichnis, ab dem gescannt wird (Default: aktueller Pfad). |
32+ | ` -n ` , ` --max-files-per-dir ` | Begrenze die Anzahl an Dateien pro Verzeichnis (Default: 2). |
33+ | ` -d ` , ` --max-depth ` | Maximale Tiefe der Rekursion; unbegrenzt, wenn nicht gesetzt. |
34+ | ` --no-align-comments ` | Deaktiviert die Ausrichtung der Kommentar-Platzhalter am Zeilenende. |
35+ | ` -l ` , ` --language ` | Sprache der Abschlussmeldung (` de ` für Deutsch, ` en ` für Englisch; Default: ` de ` ). |
36+ | ` -h ` , ` --help ` | Zeigt diese Hilfe an und beendet das Programm. |
37+
38+ ** Ausgabe:**
3439
35- Die Ausgabe wird in die Datei ` tree.txt ` geschrieben.
40+ - Baumstruktur wird in die Datei ` tree.txt ` geschrieben.
41+ - Nach Abschluss erfolgt eine Zusammenfassung (Anzahl Verzeichnisse/Dateien, Name der Ausgabedatei).
3642
3743## 🧩 Verwendung als Modul
3844
3945``` python
40- from treescanner import TreeScanner, TreeScannerConfig
46+ from scanner import TreeScanner, TreeScannerConfig
4147
42- # Konfiguration mit Pfad, Auswahl der Maximaltiefe und Ausrichtung
4348config = TreeScannerConfig(
44- root_path = " ./" , # zu scannender Pfad
45- max_depth = 3 , # maximale Rekursionstiefe
46- max_files_per_dir = 5 , # bis zu 5 Dateien pro Ordner anzeigen
47- align_comments = True # Kommentare ausrichten
49+ root_path = " ./" , # zu scannender Pfad
50+ max_depth = 3 , # maximale Rekursionstiefe
51+ max_files_per_dir = 5 , # bis zu 5 Dateien pro Ordner anzeigen
52+ align_comments = True , # Kommentare ausrichten
53+ language = " de" # Sprache der Ausgabe
4854)
4955scanner = TreeScanner(config)
5056output = scanner.generate_tree()
@@ -55,16 +61,17 @@ print(output)
5561
5662## ⚙️ Konfiguration via ` TreeScannerConfig `
5763
58- | Attribut | Typ | Beschreibung |
59- | -----------------------| -------------------| -------------------------------------------------------------------------|
60- | ` root_path: str ` | Pfad | Basisverzeichnis zum Scannen (Default: ` . ` ) |
61- | ` folder_icon: str ` | Unicode-Zeichen | Symbol für Verzeichnisse (Default: 📁) |
62- | ` file_icon: str ` | Unicode-Zeichen | Symbol für Dateien und Platzhalter (Default: 📄) |
63- | ` max_files_per_dir: int ` | Ganzzahl | Maximale angezeigte Dateien pro Verzeichnis (Default: 2) |
64- | ` max_depth: Optional[int] ` | Ganzzahl/None | Maximale Rekursionstiefe, ` None ` = unlimitiert |
65- | ` align_comments: bool ` | Wahr/Falsch | Kommentare am Zeilenende ausrichten (Default: ` True ` ) |
64+ | Attribut | Typ | Beschreibung |
65+ | -----------------------------| --------------------| ---------------------------------------------------------------------|
66+ | ` root_path: str ` | String | Basisverzeichnis zum Scannen (Default: ` . ` ) |
67+ | ` folder_icon: str ` | Unicode-Zeichen | Symbol für Verzeichnisse (Default: 📁) |
68+ | ` file_icon: str ` | Unicode-Zeichen | Symbol für Dateien und Platzhalter (Default: 📄) |
69+ | ` max_files_per_dir: int ` | Ganzzahl | Maximale angezeigte Dateien pro Verzeichnis (Default: 2) |
70+ | ` max_depth: Optional[int] ` | Ganzzahl oder None | Maximale Rekursionstiefe; ` None ` = unbegrenzt |
71+ | ` align_comments: bool ` | Bool | Kommentare am Zeilenende ausrichten (Default: ` True ` ) |
72+ | ` language: str ` | String | Sprache der Zusammenfassung (` de ` oder ` en ` ) (Default: ` de ` ) |
6673
67- ## 📄 Beispielausgabe
74+ ## 📄 Beispielausgabe (tree.txt)
6875
6976``` plaintext
7077📁 treescannerASCII/
@@ -78,6 +85,24 @@ print(output)
7885└── 📄 <und 12 weitere Dateien>
7986```
8087
88+ ## 📋 Aktuelle Funktionen
89+
90+ - Ausgabe einer ASCII-Verzeichnisstruktur
91+ - Begrenzung der Dateiausgabe pro Verzeichnis
92+ - Begrenzung der Rekursionstiefe
93+ - Optionale Ausrichtung der Kommentarzeile am Ende
94+ - Mehrsprachige Abschlussmeldung (Deutsch, Englisch)
95+ - Ausgabe als Textdatei (` tree.txt ` )
96+ - Saubere Google-Style Docstrings für IDE-Kompatibilität
97+ - Modularer Aufbau für spätere Erweiterungen
98+
99+ ## 🛡️ Geplante Erweiterungen
100+
101+ - Bessere Fehlerbehandlung bei ungültigem Pfad (anstatt Absturz)
102+ - Farbliche Ausgabe der Baumstruktur in der Konsole (optional)
103+ - Konfigurierbare Ausgabe-Datei über CLI
104+ - Vorbereitung für Unicode-optimierte Konsolen
105+
81106## 📄 Lizenz
82107
83- MIT – siehe [ LICENSE] ( ./LICENSE )
108+ MIT – siehe [ LICENSE.md ] ( ./LICENSE.md )
0 commit comments