Seite 1 von 1

Variable in datei speichern?

Verfasst: Donnerstag 28. Februar 2008, 14:46
von Tomek
Ich will Informationen von wifi Paketen in eine named pipe geschrieben. Problem ist das diese Informationen in form eines dictonary vorliegen.

Frage: Wie speichere ich ein dictonary bzw. eben eine variable in eine datei? kann ich ein dict zu einen string machen? Dann könnt ich bequem mit write() reinschreiben.

Ein 2tes C++ Programm würde diese Pipe dann auslesen und die Infos als Eingabe nehmen.

Verfasst: Donnerstag 28. Februar 2008, 14:54
von audax

Verfasst: Donnerstag 28. Februar 2008, 14:54
von Pablo Escobar

Code: Alles auswählen

beispiel = {1:'A', 2:'B', 3:'C'}
>>> str(beispiel)
"{1: 'A', 2: 'B', 3: 'C'}"
wie du siehst kannst du das ganze in nen string wandeln
allerdings ist die frage in was für einer form du das ganze
in diesem file stehen haben möchtest

Verfasst: Donnerstag 28. Februar 2008, 14:54
von Zando
http://www.thomas-guettler.de/vortraege ... hrung.html

-> nach pickle suchen, damit kannst du auch komplexere Datenstrukturen speichern/laden

Verfasst: Donnerstag 28. Februar 2008, 15:04
von BlackJack
@alle die `pickle` empfohlen haben: Tomek möchte die Daten mit einem C++ Programm weiter verarbeiten.

@Tomek: Schau Dir mal json an. Da gibt's sowohl für Python, als auch für C++ Bibliotheken für. Unten auf der Seite sind eine Menge Links zu Implementierungen in verschiedenen Sprachen.

Verfasst: Donnerstag 28. Februar 2008, 15:06
von audax
Oh. C++.

Och, Python lässt sich in C++ einbetten ;)

Verfasst: Donnerstag 28. Februar 2008, 15:28
von Zando
Hmm, zu schnell geantwortet/gelesen...

Und C++ hat kein Pickle? Die armen armen C++ler, wie halten die das nur aus? :roll:

Verfasst: Donnerstag 28. Februar 2008, 16:55
von BlackJack

Verfasst: Freitag 29. Februar 2008, 15:16
von Tomek
danke! das str() hat schonmal bestens geklappt. und ich versuch jetzt mal diesen weg. Wobei das etwas ungeschickt ist da ich das in c code dann durchparsen muss.
Serialisieren war eigentlich genau das was ich gesucht hab, ich hab damit in c++ schon vor Jahren gearbeitet und es ist eigentlich genau das was ich brauche, habs nur vergessen :) dort ist es glaub serialise() und unserialise() jedoch weis ich nicht ob dies von python nach c++ klappt. Kann ich ein dictonary "serielisiert" mit python an eine pipe/datei übergeben und mit c++ auslesen? C++ hat keine dictonaries meineswissens.

Vielleicht kann ich das diconary in "Irgendwas" anderes umkonvertieren bevor ich es serialisiere was von c++ erkannt wird?

Verfasst: Freitag 29. Februar 2008, 16:05
von BlackJack
Hast Du Dir JSON angeschaut?

Verfasst: Freitag 29. Februar 2008, 16:28
von Leonidas
Tomek hat geschrieben:C++ hat keine dictonaries meineswissens.
Die STL hat hash_map, was so wie Pythons Dictionaries funktionieren sollte.

Verfasst: Freitag 29. Februar 2008, 17:06
von CM
jupp, es gibt z. B. map, damit geht

Code: Alles auswählen

map<string, string>m;
m["eins"] = "one";
// und zurück
string x = m["eins"];
HTH
Christian