Derzeit beschäftigt mich ein Problem das die Verzeichnishierarchie betrifft.
Da ich mir sicher bin, das viele Nutzer mit os.path und/oder pathlib vor einer steilen Lernkurve stehen, denke ich das dieser Post angemessen ist.
Es liegt folgende Verzeichnisstruktur vor:
Code: Alles auswählen
/root
|
------ Ordnername1
| |---------Ordnername1
| |---------------- Ordner mit Namen
| |---------------- evtl. Datei mit Namen
|
------ Ordnername2
| |---------Ordnername2
| |---------------- Ordner mit Namen
| |---------------- evtl. Datei mit Namen
|
------ OrdnernameX
|---------OrdnernameX
|---------------- Ordner mit Namen
|---------------- evtl. Datei mit Namen
Ziel ist es jetzt, die "untersten" Verzeichnisse und Dateien eine Hierarchieebene nach oben zu verschieben, und den "doppelten" Ordner zu löschen.
Hier mein bisheriger Ansatz:
Code: Alles auswählen
import pathlib
root = pathlib.Path.cwd() # starts in current working directory
root
children1 = [x for x in root.iterdir() if x.is_dir()] #generates a list of subdirectories
children1
for c in children1:
child2 = [x for x in c.iterdir() if x.is_dir()] #and another list of subdirectories
child2
if child2:
child3 = [x for x in child2[0].iterdir()] # now a list of directory objects
child3
if child3:
for c in child3:
print c.name
#child2[0].replace(child2[0].parent) # Replace parent with child (axe the last folder) -> PermissionError
Danke für Anregungen!
MfG,
XX