Textdateien erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nightm4r3^
User
Beiträge: 83
Registriert: Montag 11. Februar 2008, 15:43
Kontaktdaten:

Dienstag 17. Februar 2009, 15:59

Hallo liebe Forenuser,
wir behandeln in unseren Informatikkurs im Moment die Frage, welches Sortierverfahren das beste sei. Zum Schluss blieben wir an zwei Sortierverfahren hängen. Nun war die Frage herauszufinden welches schneller ist. Dazu sollte ein Programm geschrieben werden (alles schon gemacht) welches eines der beiden Sortierverfahren durchläuft, und die Zeit die es dafür braucht misst. Das wäre auch alles kein Problem, wenn wir nicht die ausgelesen Zeiten in eine Textdatei speichern sollten. Meine Frage an euch ist nun:

1. Wie funktioniert dieses herauskopieren der Werte aus Python und das gleichzeitige anlegen einer Textdatei mit eben diesen Werten.
2. Wenn es mehrere Möglichkeiten gibt (direkt hineinschreiben, erst berechnen dann hineinschreiben) wüsste ich gerne welche die schnellste ist.
3. Wenn wir schon gerade dabei sind, ob und wie ist es möglich diese Datei in ein neues Programm zu importieren? Also angenommen man hat beide Sortierverfahren durch, hat nun zwei Dateien (oder auch nur eine) und will nun diese beiden Werte Vergleichen (Ich will kein Programm sondern nur den Befehl zum Importieren).


mfg nightm4r3

PS: Ich will hier NICHT dass ihr meine Aufgaben löst. Ich hab ein relativ gutes Pythonbuch, doch darin wird nicht das exportieren von Daten aus einem Programm erwähnt.
DasIch
User
Beiträge: 2465
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Dienstag 17. Februar 2009, 16:03

ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Dienstag 17. Februar 2009, 20:35

Code: Alles auswählen

f = open("sort.log", "w")
f.write("Verfahren1: %s Sekunden" % time_sort1)
f.write("Verfahren2: %s Sekunden" % time_sort2)
f.close()
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Dienstag 17. Februar 2009, 21:25

Code: Alles auswählen

In [1]: from __future__ import with_statement

In [2]: with file("foo.txt") as fl:
   ...:     foo = fl.read()
Sollte nicht unerwähnt bleiben.

(ab 2.6 ist der Import obsolet)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Mittwoch 18. Februar 2009, 08:56

Noch einfacher ist es vielleicht, wenn das Programm seine Ausgabe mit `print` ganz normal nach `sys.stdout` schreibt und man beim Programmaufruf dann mit "> datei" die Ausgabe in eine Datei umlenkt.

Stefan
nightm4r3^
User
Beiträge: 83
Registriert: Montag 11. Februar 2008, 15:43
Kontaktdaten:

Mittwoch 18. Februar 2009, 18:28

Hab ich das jetzt richtig verstanden?
Man kann also mit 'print' schon direkt in eine Datei schreiben? Muss man dazu selber eine Datei anlegen oder wird die von Python selber erstellt?
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Mittwoch 18. Februar 2009, 18:43

Nicht mit print, aber mithilfe einer Shell kann man Ausgaben eines Programmes (also Strings, die in den Stream stdout geschrieben werden) in eine Datei umleiten, mithilfe von >. "cat dateiname > neue_datei" kann man zum beispiel zum Kopieren einer Datei benutzen. Dabei wird die Datei gelesen, normal ausgegeben und diese Ausgabe mit > in eine Datei umgeleitet. Jede halbwegs vernünftige Shell sollte soetwas anbieten, sogar das Windows CMD Ding.
Antworten