Seite 1 von 1
for Schleife
Verfasst: Donnerstag 19. Dezember 2013, 14:32
von Student_1515
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?
Code: Alles auswählen
for n in frames:
number_values = len(X)
[b]file = open('Name_'n*50+200'.txt','w+')[/b]
for i in xrange(number_values):
n=Y
m=Z
file.write(str(n) + '\t' + str(m[0]) + '\t' + str(m[1]) + '\t' + str(m[2]) + '\n')
file.close()
Hab hier mal n*50+200 eingefügt
Danke für eure Hilfe
Re: for Schleife
Verfasst: Donnerstag 19. Dezember 2013, 14:38
von snafu
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.
Re: for Schleife
Verfasst: Donnerstag 19. Dezember 2013, 14:52
von Hyperion
Suchst Du so etwas in der Art?
Code: Alles auswählen
for i in range(5):
print("Name_{}".format(i))
> Name_0
Name_1
Name_2
Name_3
Name_4
Kleine Anmerkungen:
- Dateien solltest Du immer so öffnen:
Code: Alles auswählen
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!
Re: for Schleife
Verfasst: Donnerstag 19. Dezember 2013, 15:11
von Student_1515
Tut mir leid aber ich kann in python echt nix
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?
Danke für eure Hilfe!!!!
Re: for Schleife
Verfasst: Donnerstag 19. Dezember 2013, 15:12
von BlackJack
@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.
Edit: Dann lern Python wenn Du's nicht kannst.
Re: for Schleife
Verfasst: Donnerstag 19. Dezember 2013, 15:21
von BlackJack
@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.