Listen in ein File Object verwandeln

Hallo zusammen, ich möchte eine Liste von Strings an eine Funktion übergeben, die aber ein File-Objekt erwartet. Gibt es eine Möglichkeit, die Liste umzuwandeln? Bisher behelfe ich mir dadurch, dass ich die Liste in eine temporäre Datei schreibe und daraus anschließend wieder lese. Das scheint mir nicht sehr elegant. Gruss, Andreas -- Andreas Grytz | http://www.linuxnewmedia.de Stefan-George-Ring 24 | Tel: +49 (0) 89 993411-0 D-81929 München | Fax: +49 (0) 89 993411-99 _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Am Mittwoch, 13. August 2003 14:15 schrieb Andreas Grytz:
ich möchte eine Liste von Strings an eine Funktion übergeben, die aber ein File-Objekt erwartet. Gibt es eine Möglichkeit, die Liste umzuwandeln? Bisher behelfe ich mir dadurch, dass ich die Liste in eine temporäre Datei schreibe und daraus anschließend wieder lese. Das scheint mir nicht sehr elegant.
Wenn die Funktion auch Objekte mit File-like Schnittstelle akzeptiert, könnte Dir StringIO bzw. cStringIO weiterhelfen. Aber um das Schreiben in irgendein File-ähnliches Objekt wirst Du wohl nicht herumkommen. Jörg -- dezentral energietechnik - Gebäudesimulation - Energiekonzepte Adalbertstrasse 7-8 +++ 10999 Berlin Tel/Fax: 030-611 07 45 2/8 +++ http://www.dezentral.de/ _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Andreas Grytz:
ich möchte eine Liste von Strings an eine Funktion übergeben, die aber ein File-Objekt erwartet. Gibt es eine Möglichkeit, die Liste umzuwandeln? Bisher behelfe ich mir dadurch, dass ich die Liste in eine temporäre Datei schreibe und daraus anschließend wieder lese. Das scheint mir nicht sehr elegant.
Schreibst Du noch, was diese ominoese Funktion mit dem vermeintlichen Dateiobjekt anstellt? Fuer mich macht das bisher noch nicht genug Sinn fuer eine qualifizierte Antwort! ;-) Dinu -- Dinu C. Gherman ...................................................................... "Who controls the past, controls the future: who controls the present controls the past." (George Orwell, 1984) _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

On Wed, Aug 13, 2003 at 02:38:43PM +0200, Dinu Gherman wrote:
Andreas Grytz:
ich möchte eine Liste von Strings an eine Funktion übergeben, die aber ein File-Objekt erwartet. Gibt es eine Möglichkeit, die Liste umzuwandeln? Bisher behelfe ich mir dadurch, dass ich die Liste in eine temporäre Datei schreibe und daraus anschließend wieder lese. Das scheint mir nicht sehr elegant.
Schreibst Du noch, was diese ominoese Funktion mit dem vermeintlichen Dateiobjekt anstellt? Fuer mich macht das bisher noch nicht genug Sinn fuer eine qualifizierte Antwort! ;-)
Na klar, auch wenn ich ich schon einige qualifizierte Antworten bekommen habe. :) Ich stricke gerade an einem Skript, das eine Mbox-Datei als Eingabe nimmt und die Mails darin in ein XML-Format überführt. Als Anmerkung: Ich arbeite mit Python 1.5.2 (fremd-administrierte Kiste). Der Aufruf: formail -s < Mbox skript.py # weil ich zu faul war, eine Schleife über die Mails zu programmieren (zu warm im Büro) Den Body lese ich ein und wenn die Mail multipart/mixed ist, dann lese ich alle Teile des Body als Listen ein und arbeite die nacheinader ab. Wenn man so einen Bodypart mämlich wieder als mimetools.Message-Objekt einliest, kriegt man prima wieder Content-Type und Encoding raus. Aber dafür mußte ich eben die Liste in ein File-ähnliche Objekt umwandeln. Alles klar? ;) Wenn das mal über das frühe Betastadium hinaus ist, kann ich das Skript ja mal bei Interesse posten. Ciao und danke an alle, Andreas -- Andreas Grytz | http://www.linuxnewmedia.de Stefan-George-Ring 24 | Tel: +49 (0) 89 993411-0 D-81929 München | Fax: +49 (0) 89 993411-99 _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

On Wed, Aug 13, 2003 at 02:38:43PM +0200, Dinu Gherman wrote:
Andreas Grytz:
ich möchte eine Liste von Strings an eine Funktion übergeben, die aber ein File-Objekt erwartet. Gibt es eine Möglichkeit, die Liste umzuwandeln? Bisher behelfe ich mir dadurch, dass ich die Liste in eine temporäre Datei schreibe und daraus anschließend wieder lese. Das scheint mir nicht sehr elegant.
Schreibst Du noch, was diese ominoese Funktion mit dem vermeintlichen Dateiobjekt anstellt? Fuer mich macht das bisher noch nicht genug Sinn fuer eine qualifizierte Antwort! ;-)
Ich hatte mal vor einiger Zeit ein Problem mit einer Liste von Strings, die ich in ein File-Objekt umwandeln wollte. Das ganze wurde in einem Skript verwendet, das eine Mailbox in ein XML-Format umwandelt: formail -ds leser.py < leser.mbx > leser.xml Mittlerweile ist das Skript einigermaßen fertig und ich hatte ja versprochen, das mal zu posten. Man kann da sicher noch einiges verbessern. Vorschläge sind da jederzeit willkommen, aber nicht vergessen, ich sitze an einer Kiste, auf der noch Python 1.5.2 installiert ist. Das sollte fast mehr Herausforderung sein, als die Technik selber :) Gruss, Andreas -- Andreas Grytz | http://www.linuxnewmedia.de Stefan-George-Ring 24 | Tel: +49 (0) 89 993411-0 D-81929 München | Fax: +49 (0) 89 993411-99 _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

On Wednesday 13 August 2003 14:15, Andreas Grytz wrote:
Hallo zusammen,
ich möchte eine Liste von Strings an eine Funktion übergeben, die aber ein File-Objekt erwartet. Gibt es eine Möglichkeit, die Liste umzuwandeln? Bisher behelfe ich mir dadurch, dass ich die Liste in eine temporäre Datei schreibe und daraus anschließend wieder lese. Das scheint mir nicht sehr elegant.
Stimmt :-) benutz doch StringIO oder cStringIO. das könnte folgendermassen aussehen:
from StringIO import StringIO liste = ['a','b','c'] fs = StringIO('\n'.join(liste)) for line in fs: ... print line, a b c
Gruss, Andreas
Viel Spass Stephan _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Am Wed, Aug 13, 2003 at 02:15:15PM +0200, Andreas Grytz schrieb:
Hallo zusammen,
ich möchte eine Liste von Strings an eine Funktion übergeben, die aber ein File-Objekt erwartet. Gibt es eine Möglichkeit, die Liste umzuwandeln? Bisher behelfe ich mir dadurch, dass ich die Liste in eine temporäre Datei schreibe und daraus anschließend wieder lese. Das scheint mir nicht sehr elegant.
Gruss, Andreas
Hallo Andreas, das ist in der tat wirklich nicht sehr elegant, besser ist es wenn du StringIO verwendest, Beispiel: #!/usr/bin/python import StringIO vfile = StringIO.StringIO() # Dann das vfile Objekt wie einen echte Datei behandeln, also write() und # so zum füllen verwenden. Es hat alle Methoden die eine echte Datei # auch hat! vfile.seek(0) # An den Dateianfang springen funktion_welche_file_object_braucht(vfile) mfg Betz Stefan -- Profitip No. 413: Zeit sparen durch Rebooten im Hintergrund. Man will ja nicht jedesmal die Arbeit unterbrechen... stefan@athlon.hornynet:~$ reboot & _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de
participants (5)
-
Andreas Grytz
-
Dinu Gherman
-
Joerg Raedler
-
Stefan J. Betz
-
Stephan Diehl