@EyDu: Das mit dem "\" weiss ich schon, aber des schaut so blöd aus, wennste eine zeile hast wo man dann erst mal über drei monitore hinweg scrollen muss... wenn ich dann schon alles in "eine zeile" bratz, dann wenigstens so, dass man alles auf einen blick hat...
wie meinste das mit "ein os.walk reicht" ? is doch nur eins gewesen oder verschau ich mich grad?!
@EyDu, Rebecca: Das das nicht gerade leserlich ist, ist mir schon klar... ich spiel nur gerade ein wenig mit listcomprehensions, nested lc.... usw rum. mein ursprünglicher code nachdem ich das bearbeitet habe, sah ungefähr so aus:
Code: Alles auswählen
import os
path = '/home/jb/temp/'
def delete(x):
print x
#map(delete ,[os.path.join(path, d) for d in os.listdir(path) \
# if os.path.join(path, d) not in [os.path.join(path, d) \
# for e in os.walk(os.path.join(path, d)) if len(e[2])]])
for d in os.listdir(path):
delFlag = True
for e in os.walk(os.path.join(path, d)):
if e[2]:
delFlag = False
break
if delFlag: delete(os.path.join(path, d))
dann dachte ich mir allerdings, ob es nicht möglich wäre, die variable delFlag noch zu beseitigen, ums noch minimaler zu gestalten... (das es dann die lesbarkeit nicht sonderlich steigert ist mir schon bewusst)... und um ein bisschen mit LCs rumzuspielen...
@BlackJack: Das verstehe ich nicht ganz...

was meinst du mit "Man sollte `map()` nicht als Schleife missbrauchen" ? ich will auf jedes element einer sequenz eine bestimmte funktion anwenden?! ist das nicht die intention der funktion "map" ?? wenn nicht, wie denn dann??
@ALL : Danke für die schnellen Antworten

. Trotzdem noch die Frage - Wie würdet ihr das machen??
[EDIT:]
...und dann viel ihm zwei minuten später ein, wie man die variable weglassen kann...
Code: Alles auswählen
import os
path = '/home/jb/temp/'
def delete(x):
print x
for d in os.listdir(path):
for e in os.walk(os.path.join(path, d)):
if e[2]: break
else:
delete(os.path.join(path, d))
meeensch kinners...
