Hallo Forum,
ich bin ein Neuling in Python und versuche gerade zwei erstellte arrays in
eine lesbare Textdatei in zwei Spalten zu zwängen.
Mit numpy.savetxt kann ich zumindest ein array speichern.
Versuche ich dann das zweite array zu speichern überschreibt er natürlich
die erste Spalte.
Auch mit write(), tofile() hatte ich keinen Erfolg.
Auch der Tipp mit pickle produziert bei mir nur Buchstabensalat.
Ihr könnt mir sicher helfen!
mehrspaltige Textdatei
Code: Alles auswählen
# encoding: utf-8
def twocols(text, width=38):
lines = [line.ljust(width) for line in text.splitlines()]
count = len(lines) / 2
if len(lines) % 2:
lines.append(" " * width)
return u"\n".join(lines[i] + " " + lines[i + count] for i in range(count))
print twocols(u"""Hallo Forum,
ich bin ein Neuling in Python und
versuche gerade zwei erstellte
arrays in eine lesbare Textdatei in
zwei Spalten zu zwängen.
Mit numpy.savetxt kann ich zumindest
ein array speichern.
Versuche ich dann das zweite array zu
speichern überschreibt er natürlich
die erste Spalte.
Ihr könnt mir sicher helfen!
""")
Stefan
@sma: Der OP spricht von `numpy.array`\s, ich denke mal nicht, dass es um zweispaltigen Fliesstext geht.
Mir doch egal ;) Den Code schnell zu schreiben hat Spaß gemacht und daher habe ich's gemacht. Zu numpy kann ich nix sagen.BlackJack hat geschrieben:@sma: Der OP spricht von `numpy.array`\s, ich denke mal nicht, dass es um zweispaltigen Fliesstext geht.
Stefan
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
IMHO liegt das "Problem" außerhalb von Python: eine einfache Text-Datei ist nun mal nicht dafür gemacht, mehrspaltig zu sein, weil es in diesem Format einfach nicht vorgesehen ist.
Was ist denn das Ziel? Ein Fließtext a la Zeitung oder eine Gegenüberstellung a la
car Auto
dog Hund
snake Schlange
Oder noch was anderes?
Gruß,
IMHO liegt das "Problem" außerhalb von Python: eine einfache Text-Datei ist nun mal nicht dafür gemacht, mehrspaltig zu sein, weil es in diesem Format einfach nicht vorgesehen ist.
Was ist denn das Ziel? Ein Fließtext a la Zeitung oder eine Gegenüberstellung a la
car Auto
dog Hund
snake Schlange
Oder noch was anderes?
Gruß,
Ich habe einfach nur zwei arrays mit Werten erzeugt, die ich in eine Datei stecken wollte (zwei Spalten), um sie später dann mit Hilfe der matplotlib plotten zu können.
Mehr nicht, ich hab's bis jetzt nicht herausfinden können.
Gruß
reyungoo
Mehr nicht, ich hab's bis jetzt nicht herausfinden können.
Gruß
reyungoo
Wieso nicht? Was ist mit dem Code von sma?ich hab's bis jetzt nicht herausfinden können.
Gruß
Du musst vorher, z.B. mit hstack bzw. vstack einfach ein Array draus machen und dieses dann abspeichern:
MFG HerrHagen
Code: Alles auswählen
>>> a = np.array([[1],[2],[3]])
>>> b = np.array([[2],[3],[4]])
>>> np.hstack((a,b))
array([[1, 2],
[2, 3],
[3, 4]])
Da fällt mir noch ein: wieso willst du eigentlich die Daten in eine Datei speichern um sie mit matplotlib zu plotten. Das geht auch direkt:
Code: Alles auswählen
>>> a = np.array([1,2,3])
>>> b = np.array([2,3,4])
>>> pylab.plot(a, b)
[spekulation] Möglicherweise, um die Daten auch irgendwo hinterlegt zu haben, z. B. weil die Rechnung lange dauert und man am Plot feilen will und nicht immer wieder neu rechnen will.[/spekulation]HerrHagen hat geschrieben:Da fällt mir noch ein: wieso willst du eigentlich die Daten in eine Datei speichern um sie mit matplotlib zu plotten.
@reyungoo: Schau doch mal numpy.loadtxt() und numpy.savetxt() an.
@noisefloor: So? Mir kommen täglich mehrere GB mehrspaltige Textdateien (Beispiel gefällig?) unter die Finger. Aber ansonsten bin ich mir sicher, dass hier niemand so eine Datei je gesehen hat. SCNRnoisefloor hat geschrieben:IMHO liegt das "Problem" außerhalb von Python: eine einfache Text-Datei ist nun mal nicht dafür gemacht, mehrspaltig zu sein, weil es in diesem Format einfach nicht vorgesehen ist.
Gruß,
Christian
Danke für die Antworten,
mit hstack bzw. vstack hat's dann endlich funktioniert. Das war es, was ich gesucht habe.
@CM: numpy.loadtxt() und numpy.savetxt() zum gleichzeitigen Einlesen mehrerer Spalten und Abspeichern
bestens geeignet, war aber nicht genau das, was ich brauchte, trotzdem danke.
beste Grüße
mit hstack bzw. vstack hat's dann endlich funktioniert. Das war es, was ich gesucht habe.
@CM: numpy.loadtxt() und numpy.savetxt() zum gleichzeitigen Einlesen mehrerer Spalten und Abspeichern
bestens geeignet, war aber nicht genau das, was ich brauchte, trotzdem danke.
beste Grüße