Seite 1 von 1

bitte nen tipp in die richtige richtung...

Verfasst: Samstag 6. Dezember 2008, 01:04
von gnom
moin ihrs!

folgende frage, ich wollte gerne nen kleines programm schreiben, welches mir die daten eines verzeichnisses einzeln ausgibt bis zu einem gewissen punkt und dann wieder von vorne anfängt... und dabei ist bisher folgendes rausgekommen:

Code: Alles auswählen

import os, time

basePath = '/home/of_the_gnom/python-pics'

bildliste = []

pics = os.listdir(basePath)

bildliste.append(pics)
bildliste[0].sort()
i = 0
while i <= 10:
    bild = bildliste[0] [i]
    print bild
    time.sleep(1)
    i = i + 1
    if i >= 10:
	i == 0
soweit so gut, tut bisher genau das was ich von ihm erwarte...
bis auf die sache, dass das programm genau bis datei 11 geht und dann stoppt.
dat soll doch i wieder auf 0 setzen und von vorne anfangen,,, verdammich :P

tut mir bitte einen gefallen!

bitte keine direkte antwort ala:"dat geht so und so!"=>code geben!
ich will das ja irgendwie lernen und das kann ich am besten, wenn ich verstehe was ich da so anstelle!
also bitte nur richtungsweisende tipps :)

Verfasst: Samstag 6. Dezember 2008, 01:29
von Leonidas
Hallo gnom, willkommen im Forum,

Der Tipp ist: ``==`` ist nicht das gleiche wie ``=``. Zweiter Tipp: Einrückung ist Python nicht egal.

Übrigens wäre es schön gewesen, wenn du einen etwas aussagekräftigeren Titel gewählt hättest.

Ich nehme mal an dass es in Zukunft irgendeinen Sinn haben wird, dass du da eine Liste in einer Liste hast...

Ok, genug der Tips 8)

Verfasst: Samstag 6. Dezember 2008, 01:33
von cofi
Das fängt nicht von vorne an, da der Code falsch ist ;) Python sollte auch eine Fehlermeldung ausspucken, da es schon an der Syntax mangelt ;)

Der Hinweis für dich ist: Vergleich != Zuweisung.

Allerdings gibt es da noch ein paar unschöne Sachen im Code, wenn du Meinungen dazu hören willst, gib Bescheid ;)
Und schau dir am besten mal PEP 8 an.

Edit: Zu langsam :/

Verfasst: Samstag 6. Dezember 2008, 01:57
von gnom
hallo leonidas!

danke für das willkommen! :)

argh... das mit dem == hab ich glatt übersehen... ok, die endlosschleife hab ich schon mal. :)
Ich nehme mal an dass es in Zukunft irgendeinen Sinn haben wird, dass du da eine Liste in einer Liste hast...
*wichtig in die weltgeschichte schau* ja klar! *hüstel* naja... das ist jedenfalls das, was mir das os.listdir vor die füsse schmeisst... und ich mach erstmal das beste daraus :)

das einrücken übernimmt mein kwrite, hab den auf 4 leerzeichen eingestellt und beim automatischen einrücken ebenfalls auf 4 leerzeichen...
die letzte zeile ist beim copy&paste irgendwie falsch hier angekommen

Code: Alles auswählen

...
    if i >= 10:
        i = 0
so sieht es richtig aus bei mir, musste das hier per hand editieren damit es richtig angezeigt wird. (schon verbessert ;) )

ich schwimm halt noch ganz weit oben und kämpf mit den wellen...

Verfasst: Samstag 6. Dezember 2008, 10:34
von tordmor
Ich seh hier eine umständlich nachprogrammierte for-schleife, die über die ersten 11 Elemente der Liste looped (und bei weniger als 11 Elementen in der Liste einen Fehler erzeugt). Die restlichen Elemente der Liste werden ignoriert.
Also warum schneidest Du nicht einen Slice aus der Liste und verwendest eine for-Schleife? Und das ganze kannst Du in ein while True: packen. Dann sieht man schon am Code viel mehr, was er tun soll.

Verfasst: Samstag 6. Dezember 2008, 10:57
von gnom
weil ich ja irgendwo anfangen muss :)

für die zukunft wollte ich, das alle dateien des verzeichnisses ausgelesen werden und nur ein bestimmter dateityp benutzt wird. desweiteren wird alles dann geordnet und einzeln angezeigt.

bin leider nicht der typ, der einfach bücher verschlingen kann und alles wie in granit gemeißelt im kopf hat. ich brauch da was praktisches :)

so, ich werd nun erstmal meinen 2. kaffee einfahren und dann wieder auf den bildschirm starren :)

happy niko die laus :D *schokomann kopf abbeiß*