ich möchte Daten welche in einer Liste gespeichert sind, die Liste ist als Key:Value in einem Dict gespeichert, in eine .txt-file schreiben.
In diesem Dict sind insgesamt 19 Key:Value Paare enthalten. Jede Liste(Value) hat die selbe Länge. Es kann aber sein, das eine Liste gar keine Daten enthält.
Beispiel:
Ich bekomme Daten aus dem Netz (Finanzdaten), diese verarbeite ich danach. Jenachdem was ich gerade benötige, speichere ich diese dann zueghörig in einer Liste im Dict mit den passenden Key:Value Paaren.
Das Dict sieht for der Speicherung der Daten wie folgt aus:
Code: Alles auswählen
historical_data = {}
historical_data.update(UNIX_OPENTIME=[], UNIX_CLOSETIME=[], DATE=[], OPENTIME=[],
OPEN=[], HIGH=[], LOW=[], CLOSE=[],
EMA_UP=[], EMA_DOWN=[], RSI=[],
EMA_8=[], EMA_14=[], EMA_50=[],
TR=[], ATR=[],
STOCH_RSI=[], SMOOTH_K=[], SMOOTH_D=[])
In der .txt-Datei soll das dann wie folgt aussehen.
Zeile1: Name[KEY(1)],Name[KEY(2)],...,Name[KEY(n)]
Zeile2: Daten[KEY(1)[0]],Daten[KEY(2)[0]],...,Daten[KEY(n)[0]]
Zeile3: Daten[KEY(1)[1]],Daten[KEY(2)[1]],...,Daten[KEY(n)[1]]
Zeile3: Daten[KEY(1)[k]],Daten[KEY(2)[k]],...,Daten[KEY(n)[k]]
Als Header sollen die Namen der KEY´s stehen getrennt durch ein Komma.
Und in den Zeilen darunter, die jeweiligen Daten aus den Listen, zugehörig zu den KEY´s.
Wie bereits erwähnt, kann es vorkommen, das ein KEY:Value Paar keine Daten in der Liste gespeichert hat. Dann soll diese auch nicht in der .txt-Datei gespeichert werden.
Wichtig ist, dass die Daten in der selben Reihenfolge aus der Liste übernommen werden sollen.
Mein Ansatz war nun bisher soweit gekommen, dass ich die Header in die .txt-Datei übertragen habe.
Nun steh ich etwas auf dem Schlauch, wie ich die Zeilen danach befülle.
Code: Alles auswählen
def write_to_file(*args):
""""""
line = ",".join(map(str, args))
with open("data.txt", "a", encoding="utf-8") as file:
file.write(f"{line}\n")
arg = []
for key in historical_data:
if historical_data[key]:
arg.append(key)
write_to_file(*arg)
Schönen Abend euch.
Chris