Ich arbeite mit schrecklichen System, das Verzeichnisbaumstruktur implementiert hat und den Import dieser Struktur auf eine "seltsame Art und Weise" unterstützt, weil Import nur Format child;parent
importieren. Import Einschränkungen:
- Kind Einzelteile müssen eindeutige Namen haben
- wenn übergeordnetes Element dupliziert wird, wird Kind unter erst Eltern importiert gefundenPython Tree Verzeichnisse eindeutige Namen, Baum-Algorithmen
folgende Struktur von Verzeichnissen annehmen zu müssen
root
|-- A
| |-- aa
| | |-- cc
| | `-- dd
| `-- bb
| `-- ee
`-- B
|-- aa
| |-- cc
| `-- dd
`-- bb
`-- FF
erstellt Wie würde standardmäßig importieren aussehen, was nicht funktioniert oder falsche Darstellung erzeugt:
child;parent
root
A;root
aa;A
cc;aa
dd;aa
bb;A
ee;bb
B;root
aa;B <-- duplicated child item does not work
cc;aa <-- duplicated entry - system saves it under A instead of under B
dd;aa <-- duplicated entry - system saves it under A instead of under B
bb;B
FF;bb <-- system saves it under A instead of under B
Falsch r ePresentation
root
|-- A
| |-- aa
| | |-- cc
| | `-- dd
| `-- bb
| |-- FF
| `-- ee
`-- B
`-- aa
|-- cc
`-- dd
Um dieses Problem zu bewältigen entschied ich mich jeden Ordner mit eindeutigem String =id
+ zusätzlichen Änderungen umbenennen (kürzeren Namen, etc. Systemanforderungen passen) und importierte sie in ein System, entfernt dann =id
über Datenbank.
dann sieht Import Paare wie:
child;parent
root;
A==1;root=0
aa=2;A=1
cc=3;aa=2
dd=4;aa=2
bb=5;A=1
ee=7;bb=3
B=8;root=0
aa=9;B=8
cc=10;aa=9
dd=11;aa=9
bb=12;B=8
FF=13;bb=12
Und die Struktur als
root=0
|-- A=1
| |-- aa=2
| | |-- cc=3
| | `-- dd=4
| `-- bb=5
| `-- ee=7
`-- B=8
|-- aa=9
| |-- cc=10
| `-- dd=11
`-- bb=12
`-- FF=13
gewünscht ist aber ich muss arbeiten müssen ohne Umbenennung mit ursprünglichen Struktur arbeiten.
Ich hatte eine Idee, dass ich die Struktur nur im Speicher behalten konnte, indem ich Baumstruktur verwendete, aber ich steckte in der Implementierung fest.
Ich wollte os.walk('root')
und treelib
verwenden, aber ich brauche Hilfe bei der Umsetzung dieser.
Alle Tipps sehr geschätzt. Vielen Dank
Danke Mans, ich diesen Ansatz versucht haben, bevor aber ich viele Grenzen gefunden, die auch Entwickler Ich konnte es mir nicht sagen. Und ich unterstütze diesen Mist. Ich fand das wie es mit treelib, ich werde meine Lösung später veröffentlichen – oglop