Ich versuche, in Python eine Textdatei ähnlich der unten angegebenen zu importieren.Textdatei mit fester Breite im Python-Wörterbuch
+ CATEGORY_1 first_part of long attribute <NAME_a>
| ...second part of long attribute
| + CATEGORY_2: a sequence of attributes that extend over
| | ... possibly many <NAME_b>
| | ... lines
| | + SOURCE_1 => source_code
| + CATEGORY_2: another sequence of attributes that extend over <NAME_c>
| | ... possibly many lines
| | + CATEGORY_1: yet another sequence of <NAME_d> attributes that extend over
| | | ...many lines
| | | + CATEGORY_2: I really think <NAME_e> that
| | | | ... you got the point
| | | | ... now
| | | | + SOURCE_1 => source_code
| + SOURCE_2 => path_to_file
Wo geht davon aus, dass ich einfach den Namen des Objekts durch < als begrenzt identifizieren kann ...>
Mein idealer Ausgang einen Python-Wörterbuch wäre, die die Hierarchie der txt-Datei reflektiert, so dass für Beispiel:
{NAME_a : {'category' : CATEGORY_1,
'depencencies' : {NAME_b : {'category' : CATEGORY_2,
'source_type' : SOURCE_1,
'source_code' : source_code}
NAME_c : {'category' : CATEGORY_2,
'dependencies' : { NAME_d : {'category' : CATEGORY_1,
'dependencies' : NAME_e : {'category' : CATEGORY_2,
'source_type' : SOURCE_1,
'source_code' : source_code}
}
}
'source_type' : SOURCE_2,
'source_code : path_to_file
}
}
In denke, die Grundidee ist hier die Anzahl der Registerkarten zu zählen, bevor Zeile beginnt und dies wird die Hierarchie diktieren. Ich habe versucht, Pandas read_fwf und numpy loadfromtxt zu sehen, aber ohne Erfolg. Können Sie mich auf relevante Module oder Strategien hinweisen, um dieses Problem zu lösen?
Jeder Hinweis, wie das Problem nähern würde geschätzt. Nicht nur nach "out of the box" Lösungen suchen. – FLab
Strategie: Da Ihre Datenstruktur flach ist (es ist eine Textdatei), müssen Sie einen eigenen Parser entwickeln, um zu erraten, den Namen zu erkennen. Um die Dictionary-Struktur zu erstellen, benötigen Sie einen Stack. –