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.
Hi,
ich möchte gerne eine in einer Schleife eine txt. datei abspeichern Jedoch soll sich der Name nach jedem durchlauf ändern.
Wie kann ich die machen?
Setze die von dir fett markierte Zeile halt in deine Schleife rein. Dann ergibt sich ja automatisch in jedem Schleifendurchlauf ein neuer Dateiname. Ansonsten hat dein Code noch ziemlich viele stilistische Mängel. Die entsprechenden Kommentare dazu überlasse ich aber anderen (habe da gerade keine Lust drauf)...
EDIT: Gut, du solltest die Variablen natürlich auch innerhalb der Schleife ändern. Da hatte ich jetzt einfach mal vorausgesetzt.
with open(...) as f:
# hier ist f das file-Objekt; es wird automatisch geschlossen (auch bei Fehlern!)
- Benenne Variablen leserlich. Was bedeuten ``x``, ``y``, usw?
- Wieso bindest Du in der Schleife ``Y`` an ``n``? Du könntest ``Y`` auch direkt benutzen! Und leserlicher wird das damit imho auch nicht... außer, ``n`` und ``m`` sind in dem Kontext sinnvolle Namen - dann sollte es ``Y`` und ``Z`` aber *nicht* geben!
n,m usw waren nur Platzhalten.
Ja genau, so was suche ich.
Ist dies dann auch eine txt.Datei? Wie kann ich stilistische die Dateien (Name_50, Name_100, Name_150) erstellen?
@Student_1515: `n` wird in der äusseren Schleife auch schon verwendet. Es ist verwirrend wenn der selbe Name in verschachtelten Schleifen für unterschiedliche Dinge verwendet wird.
Nichts in der inneren Schleife hängt von `i` ab, also kann alles vor der Schleife vorbereitet werden, sofern das denn tatsächlich so gewollt ist.
`number_values` braucht man nicht unbedingt. Der Name wird ja nur an einer Stelle verwendet und da könnte man den Ausdruck dafür auch direkt hinschreiben. Falls `i` doch verwendet wird, und zwar als Index in eine Sequenz dann sollte man sich das komplett sparen, denn in Python kann man *direkt* über die Elemente einer Sequenz iterieren, ohne den Umweg über eine Indexvariable. Falls man *zusätzlich* einen laufenden Index benötigt, nimmt man die `enumerate()`-Funktion.
Das Zusammensetzen von Werten und Zeichenketten mittels `str()` und ``+`` ist unübersichtlich und eher BASIC als idiomatisches Python. In Python verwendet man Zeichenkettenformatierung mit dem ``%``-Operator oder der `format()`-Methode auf Zeichenketten.
Der Dateimodus 'w+' sieht problematisch aus. Der macht nur Sinn wenn a) die Dateien schon bestehen (können), b) der alte Inhalt nicht gelöscht werden soll, und c) es praktisch möglich ist da am Anfang neuen Inhalt zu schreiben und der schon vorhandene Inhalt der danach kommt Sinn macht. Gerade letzteres ist bei Textdateien *sehr* unwahrscheinlich, denn man müsste von der Länge her ja am Anfang genau die Länge von vorhandenen Zeilen treffen.
@Student_1515: Vielleicht nochmal zur Klarstellung, Programmieren funktioniert nicht so dass man irgendwas hinschreibt von dem man denkt das es vielleicht irgendwie so aussehen müsste, und sich dann in einem Forum das ganze in lauffähigen Code umschreiben lässt. Zu dem Thema: An alle Schüler und Studenten mit Informatikproblemen.
Zur ganz konkreten Frage musst Du Dich mit Zeichenketten und Zeichenkettenformatierung beschäftigen. Da sollte man eigentlich in jedem brauchbaren Grundlagentutorial zu tun bekommen.