Python os.path.walk() 方法

15 投票
2 回答
52654 浏览
提问于 2025-04-15 23:18

我现在在做一个大学作业,正在使用walk这个方法。一切都运行得很好,但我希望有人能给我解释一下。

在下面的例子中,myvisit这个方法里的a参数是用来干什么的呢?

>>> 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

2 个回答

29

你回调函数的第一个参数是os.path.walk函数的最后一个参数。这个参数最明显的用途是让你在多次调用辅助函数(在你的例子中是myvisit)时,可以保持一些状态。

不过,os.path.walk这个函数已经不推荐使用了。你应该使用os.walk,这个函数不需要回调函数或者辅助参数(就像你例子中的a)。

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

这是你传给 walk 的参数,在你问题中的例子里是 None。

撰写回答