Hallo Leute,
ich habe ein Problem.
_
Ich lasse ein Schleife 10 Mal durchlaufen, es wird eine Berechnung angestellt, und das
Ergebnis wird mit Print ausgegeben. Also insgesamt z.b 10 Mal.
Bei höheren Werten z.b 1.000.000 dauert das ausgeben in ein Consolefenster extrem Lange. Ich möchte die Berechnung in der Schleife die Text und Variablen enthält in eine
ganz normale String Variable speichern, und dann auf der Console ausgeben, wenn die Berechnung beendet wurde.
Hat jemand eine Lösung für mich...
Ergebnis in Variable ablegen
Warum sollte das ausgeben dann weniger lang dauern? Das dauert genauso lang.
Wenn du das beschleunigen willst, dann speicher die Ausgaben in eine Datei (zb durch die Verwendung des Moduls logging, und dem mitzuteilen, eine Log-Datei zu schreiben), und oeffne die danach mit einem Editor.
Ansonsten geht es natuerlich einfach mit
Aber wie gesagt: das geht kein Stueck schneller von statten.
Wenn du das beschleunigen willst, dann speicher die Ausgaben in eine Datei (zb durch die Verwendung des Moduls logging, und dem mitzuteilen, eine Log-Datei zu schreiben), und oeffne die danach mit einem Editor.
Ansonsten geht es natuerlich einfach mit
Code: Alles auswählen
ausgaben = []
for i in range(10000000):
ausgaben.append(str(i))
print("\n".join(ausgaben))
Hallo , danke für deine Hilfe,
ich benutze die Lernumgebung TiegerJython, die Ausgabe auf der Console dauert dort sehr lange, und die Ausgabe in eine Textdatei dauert auch sehr lange.
Die Ausgabe in eine Variable zur Laufzeit bricht mit einer Fehlermaldung ab. Ich hätte Zuwenig RAM. Ich habe das Problem so gelöst: Ich speichere zur Laufzeit jede Berechnung einzeln in eine Textdatei:
file1 = open("myfile.txt", "a") # append mode
file1.write(str(ausgaben))
file1.write("\n")
file1.close()
Was komischerweise auch sehr lange dauert. Ich glaube es liegt an der Lernumgebung.
Es macht trotz der Schwierigkeiten auch als Anfänger mit der Lernumgebung viel Spaß.
Danke...
ich benutze die Lernumgebung TiegerJython, die Ausgabe auf der Console dauert dort sehr lange, und die Ausgabe in eine Textdatei dauert auch sehr lange.
Die Ausgabe in eine Variable zur Laufzeit bricht mit einer Fehlermaldung ab. Ich hätte Zuwenig RAM. Ich habe das Problem so gelöst: Ich speichere zur Laufzeit jede Berechnung einzeln in eine Textdatei:
file1 = open("myfile.txt", "a") # append mode
file1.write(str(ausgaben))
file1.write("\n")
file1.close()
Was komischerweise auch sehr lange dauert. Ich glaube es liegt an der Lernumgebung.
Es macht trotz der Schwierigkeiten auch als Anfänger mit der Lernumgebung viel Spaß.
Danke...
- __blackjack__
- User
- Beiträge: 14056
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@PeterL: Am besten mit der ``with``-Anweisung. Und ohne die komische 1 im Namen `file1`. Entweder ist die überflüssig, oder Du hast Namen die sich nur durch angehängte Nummern unterscheiden, was keine guten Namen sind, weil solche Nummern dem Leser nicht wirklich etwas verraten und man die Namen leicht verwechseln kann.
Statt zwei Schreiboperationen pro Ergebnis zu haben, ist es sehr wahrscheinlich effizienter die komplette Zeile im Arbeitsspeicher zu erstellen und mit einer Schreiboperation in die Datei zu schreiben.
Statt zwei Schreiboperationen pro Ergebnis zu haben, ist es sehr wahrscheinlich effizienter die komplette Zeile im Arbeitsspeicher zu erstellen und mit einer Schreiboperation in die Datei zu schreiben.
Code: Alles auswählen
...
with open("myfile.txt", "a", encoding="utf-8") as file:
...
for i in range(1_000_000):
...
file.write(f"{ausgaben}\n")
“Vir, intelligence has nothing to do with politics!” — Londo Mollari