今天看 Python 文档才偶然发现,在os下增加了一个walk函数。而原来在os.path下已经有一个walk了。那么这两个有什么区别呢。

os下的walk是2.3版中新增的。它是一个产生式,每次产生会你会得到一个三元tuple。第一个为起始路径,第二个为起始路径下的目录,第三个是起始路径下的,不带路径名的文件名列表。

而os.path下的walk是一个老函数,它需要传入一个回调函数来处理得到的目录、文件信息。


6条评论

  1. 我刚学python就用过os.walk了!

  2. 我学的时候是2.0版,那时os模块没有walk函数,只有os.path有walk函数。

  3. Python好学吗??

    guiyalei@eyou.com

  4. 好学。

  5. this function very slow!

    use ‘listdir isdir isfile’ instead!

  6. 我目前遇到一个问题就是Windows下的超长文件名,由于目录结构可能很深,文件名可能很长,在walk的时候会报“文件名太长”的异常。

    导出找获取 8.3 文件名 的方法,没找到,它在list的时候能不能就直接使用8.3呢?

发表评论

评论也有版权!