2010-05-29 18 views
11

Actualmente estoy usando el método walk en una asignación uni. Todo está funcionando bien, pero esperaba que alguien pudiera explicarme algo.Python os.path.walk() método

en el siguiente ejemplo, ¿cuál es el parámetro a utilizado en el método myvisit?

>>> from os.path import walk 
>>> def myvisit(a, dir, files): 
... print dir,": %d files"%len(files) 

>>> walk('/etc', myvisit, None) 
/etc : 193 files 
/etc/default : 12 files 
/etc/cron.d : 6 files 
/etc/rc.d : 6 files 
/etc/rc.d/rc0.d : 18 files 
/etc/rc.d/rc1.d : 27 files 
/etc/rc.d/rc2.d : 42 files 
/etc/rc.d/rc3.d : 17 files 
/etc/rc.d/rcS.d : 13 files 
+12

'os.path.walk' está en desuso, usar' os.walk' – SilentGhost

+0

es que el mismo para '' os.path.exists' y os.path.isdir'? –

Respuesta

9

Es el argumento que dio a caminar, Nada en el ejemplo de su pregunta

+0

ah bien, vale. Entonces, ¿podría "a" simplemente ser "Ninguno" también? –

+0

lo intenté. No. :) Gracias Krumeler. –

+3

La forma habitual en Python para especificar que un argumento o variable no es de interés es utilizar el carácter de subrayado ('_') como el nombre del argumento. Esta es solo una convención, pero algunos IDEs (PyDev, por ejemplo) hacen honor a esto al verificar las variables no utilizadas. – Krumelur

24

El primer argumento de la función de devolución de llamada es el último argumento de la función os.path.walk. Su uso más obvio es permitirle mantener el estado entre las llamadas sucesivas a la función auxiliar (en su caso, myvisit).

os.path.walk es una función obsoleta. Deberías usar os.walk, que no necesita una función de devolución de llamada ni argumentos de ayuda (como a en tu ejemplo).

for directory, dirnames, filenames in os.walk(some_path): 
    # run here your code