Verfasst: Dienstag 2. Januar 2007, 17:49
Ja, "pickles" sind erstmal ziemlich Python-spezifisch. Es spricht ja auch nichts gegen XML als Format, man muss halt nur aufpassen das man Binärdaten entsprechend kodiert.
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Hast du vielleicht noch einen Tipp, wie man das vernünftig umsetzen könnte? Auch alle lesbaren Zeichen als Binär-Strings zu schreiben halte ich für unsinnig. In den wenigsten Fällen haben Dateien solche 'verkrüppelten' Namen. Aber auch diese Fälle möchte ich berücksichtigen.BlackJack hat geschrieben:man muss halt nur aufpassen das man Binärdaten entsprechend kodiert
Code: Alles auswählen
In [56]: '\001\n\b\t\aabcdef\xff'.encode('quoted-printable')
Out[56]: '=01\n=08=09=07abcdef=FF'
In [57]: _.decode('quoted-printable')
Out[57]: '\x01\n\x08\t\x07abcdef\xff'
Code: Alles auswählen
In [60]: print 'Brief an Manfred Müller.rtf'.encode('string-escape')
Brief an Manfred M\xc3\xbcller.rtf
Was ist besser oder geeigneter?BlackJack hat geschrieben:Eine gute Standardkodierung wäre wohl "Quoted Printable" [...] Oder Du nimmst 'string-escape' als Kodierung
Code: Alles auswählen
<Snapshot>
<FileSystem>
<File ID="1" Name="" Type="Drive"/>
<File ID="2" Name="boot" ParentID="1" Type="Directory"/>
<File ID="3" Name="grub" ParentID="2" Type="Directory"/>
<File ID="4" MTime="1167775095" Name="menu.lst" ParentID="3" Size="3893" Type="File"/>
</FileSystem>
<WindowsRegistry/>
</Snapshot>
Weil? Meinst du nach `__init__` verschieben oder komplett aus der Klasse raus?Leonidas hat geschrieben:und ich denke ich hätte die Konstanten aus der Klasse rausgezogen.
Was ist ein Generator?Leonidas hat geschrieben:Ich denke dass man CreateID in der Klasse gar nicht braucht und das diese als Generator besser gelöst werden kann. Schließlich erwartet man ja sequenzille IDs.
`os.walk()` macht eigentlich genau dasselbe.Leonidas hat geschrieben:Andererseits könnte das durch die Rekursion problematisch werden, denn Python hat ein Rekursionslimit.
Ich würde es aus der Klasse rausholen.droptix hat geschrieben:Weil? Meinst du nach `__init__` verschieben oder komplett aus der Klasse raus?
Das ist das was ich in Zeile 34 bis 40 in meinem Code habe. Ich definiere eine Funktion die unendlich lange läuft und IDs ausgibt und sich 'schlafen' legt. Beim nächsten Aufruf von .next() (Zeile 9) wird die Funktion dann um eine Iteration fortgesetzt, gibt wieder eine ID aus und 'schläft' weiter.droptix hat geschrieben:Was ist ein Generator?Leonidas hat geschrieben:Ich denke dass man CreateID in der Klasse gar nicht braucht und das diese als Generator besser gelöst werden kann. Schließlich erwartet man ja sequenzille IDs.
Stimmt, hast recht. Ich denke aber, dass das Speichern von 20 os.walk() Zuständen die sich rekursiv Aufgerufen haben, speicherschonender ist als das Speichern von 20 AddFileSystemItem() Zuständen.droptix hat geschrieben:`os.walk()` macht eigentlich genau dasselbe.Leonidas hat geschrieben:Andererseits könnte das durch die Rekursion problematisch werden, denn Python hat ein Rekursionslimit.