Matroids Matheplanet Forum Index
Moderiert von matroid mire2
Mathematische Software & Apps » Sage - Sagemath » Sage: Tabelle als Textdatei abspeichern
Druckversion
Druckversion
Autor
Kein bestimmter Bereich J Sage: Tabelle als Textdatei abspeichern
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2018-03-11


Hallo!

Ich habe
Sage
n = 3
P = Permutations(n);
Liste = P.list(); #Liste
T = table(Liste).transpose(); T
  [1, 2, 3]
  [1, 3, 2]
  [2, 1, 3]
  [2, 3, 1]
  [3, 1, 2]
  [3, 2, 1]
Out[]


Jetzt habe ich aber zwei Probleme:

1. Das Abspeichern
T.save('test.txt')
liefert die seltsame Datei test.txt.sobj.

2. Was muss ich machen, damit in der Ausgabetextdatei nur
test.txt
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
steht, also ohne Klammern und Kommas.

Danke!




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
schnitzel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 26.02.2009
Mitteilungen: 191
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2018-03-11


Tag,
bei sage ist halt immer unklar was neugeschrieben wurde und was nicht. save speichert anscheinend jedes Objekt ab (um es wieder zu laden).

was funktionieren sollte ist das standardmäßige speichern (von strings) in python:
python
with open('./my_file', 'w') as file:
    file.write(str(T))

Speziell was das laden/speichern von csv dateien angeht, ist das Modul pandas  (sollte auch in sage sein) hervorragend.

Gruß



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2018-03-11


Aha...

Äh, wie was?
Sage
n = 3
P = Permutations(n);
Liste = P.list(); #Liste
T = table(Liste).transpose(); T
#T.save('test.dat')
with open('./my_file.txt', 'w') as file:
    file.write(str(T))
 (.txt ergänzt)
liefert
myfile.txt
  [1, 2, 3]
  [1, 3, 2]
  [2, 1, 3]
  [2, 3, 1]
  [3, 1, 2]
  [3, 2, 1]

Das ist schonmal gut.  
Bloß die Klammern sollten weg, die Kommas möglichst auch.


BTW: Könnte man als Dateinamen ggf. etwas Sinnvolles wie '<n-Wert>Permutationen.txt', also hier '3Permutationen.txt' wählen?




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
schnitzel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 26.02.2009
Mitteilungen: 191
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2018-03-11


Anscheinend macht table komische Sachen, wenn da Permutationen drin sind statt Listen.
sage
n = 3
P = Permutations(n);
Liste = map(list, P); # eine richtige Liste von Listen
T = table(columns=Liste);
# string format
with open('./my_file{0}.txt'.format(4), 'w') as file:
    file.write(str(T))

Gruß



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, vom Themenstarter, eingetragen 2018-03-11


Ok... mit einem .transpose() erhalte ich die gewünschte Liste:
Sage
n = 3
P = Permutations(n);
Liste = map(list, P); # eine richtige Liste von Listen
T = table(columns=Liste).transpose(); T
# string format
with open('./{0}Permutationen.txt'.format(4), 'w') as file:
    file.write(str(T))
4Permutationen.txt
  1   2   3
  1   3   2
  2   1   3
  2   3   1
  3   1   2
  3   2   1



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2018-03-12


2018-03-11 21:58 - cis in Beitrag No. 4 schreibt:
Sage
n = 3
P = Permutations(n);
Liste = map(list, P); # eine richtige Liste von Listen
T = table(columns=Liste).transpose(); T
# string format
with open('./{0}Permutationen.txt'.format(4), 'w') as file:
    file.write(str(T))



Oje....

Irgendwas scheint hier mit der Dateibezeichnung schief zu laufen.

Wieso speichert es mir, egal was ich für n einstelle, die Datei
 4Permutationen.txt
ab?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
ajdani
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 05.06.2012
Mitteilungen: 160
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2018-03-12


2018-03-12 08:28 - cis in Beitrag No. 5 schreibt:
Irgendwas scheint hier mit der Dateibezeichnung schief zu laufen.

Wieso speichert es mir, egal was ich für n einstelle, die Datei
 4Permutationen.txt
ab?

Hallo!

Weil der Platzhalter im String './{0}Permutationen.txt' durch die Methode format(4) mit der Konstanten 4 gefüllt wird.

Das heißt, du willst eigentlich das hier:
Sage
n = 3
P = Permutations(n);
Liste = map(list, P); # eine richtige Liste von Listen
T = table(columns=Liste).transpose(); T
# string format
with open('./{0}Permutationen.txt'.format(n), 'w') as file:
    file.write(str(T))

Komisch, dass solch ein Problem in Sage den Einsatz von Python bedarf. Aber ich kenne Sage leider nicht, daher kann ich mich dazu nicht weiter äußern.

Viele Grüße



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, vom Themenstarter, eingetragen 2018-03-12


Ah super.


2018-03-12 08:45 - ajdani in Beitrag No. 6 schreibt:
Komisch, dass solch ein Problem in Sage den Einsatz von Python bedarf.

Ja, das scheint irgendwie ganz generell so zu sein. Und das nervt mich in der Tat, dass man oft vom CAS-mäßigen Sage zum programmiersprachigen Python wechseln muss.




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior hat die Antworten auf ihre/seine Frage gesehen.
Ex_Senior hat selbst das Ok-Häkchen gesetzt.
Neues Thema [Neues Thema]  Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]