Mit Python Dateien 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
Alcatros98
User
Beiträge: 7
Registriert: Sonntag 26. Februar 2012, 15:20

Ich wollte mit Python Dateien mit dem Namen 1,2,3 usw. erstellen und habe es erst mal simpel versucht:

Code: Alles auswählen

print "Wie viele Ordner solllen erstellt werden?"

i = raw_input("")
a = 0

while a < i:
    a =+ 1
    outfile = open(a + str('.txt'), "a") #Die Dateien sollten 1,2,3 usw. heißen. Deswegen das 'a + str()'.
    outfile.close()

print "Ordner wurden erstellt!"
Wieso funktioniert das nicht?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Schaue dir doch mal die Fehlermeldung an und denke darüber nach, was diese wohl bedeuten könnte. Die Lösung für dein Problem lautet übrigen String Formatting. Außerdem solltest du Dateien mittels with-Statement öffnen, dann werden diese im Fehlerfall auch wieder korrekt geschlossen.

Sebastian
Das Leben ist wie ein Tennisball.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Du schreibst du möchtest Dateien erstellen, im Quellcode aber sollens Ordner sein, statt denen dann doch Dateien erstellt werden (und das dann ausgerechnet mit dem append-Modus, welcher fürs Fortsetzen vorhandener Dateien gedacht ist). Und dann wendest du str() auf einen String statt die Zahl an. Und versäumst es die Eingabe (welche ein String ist) per int() umzukonvertieren.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Ihr habt vergessen, zu erwähnen, dass es `+=' und nicht `=+' heißt.
BlackJack

Vielleicht auch eher dass man statt ``while`` und ``+=`` hier vielleicht mit einer ``for``-Schleife und `xrange()` einfacher fährt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Die Frage gehört imho auch ins "Allgemeine Fragen"-Forum verschoben - oder sehe ich hier als einziger den Zusammenhang zu Tk nicht?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten