我目前在单一作业中使用walk
方法。这一切都很好,但我希望有人可以向我解释一些事情。
在下面的示例中,a
方法中使用的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
答案 0 :(得分:26)
回调函数的第一个参数是os.path.walk
函数的最后一个参数。它最明显的用途是允许你在连续调用辅助函数之间保持状态(在你的情况下,myvisit
)。
os.path.walk
是一个已弃用的函数。你真的应该使用os.walk
,它不需要回调函数或辅助参数(例如你的a
)。
for directory, dirnames, filenames in os.walk(some_path):
# run here your code
答案 1 :(得分:9)
这是你给步行的论点,在你的问题的例子中没有