遍历目录下的文件和文件夹

需要遍历一个目录下的所有文件和目录,最开始想到的是递归,但对于Python来说,递归真的是非常不好的一件事儿,况且已经有os.walk() 这么个有意思的语句,岂有不用之理。

先看看os.walk() 的用法:

import os
path = "/home"
for i in os.walk(path):
    print i
结果:


仔细分析会发现,每行都是一个元组,里面对应三个元素:字符串、列表、列表;分别对应于当前的“根目录”、“子目录”、“文件名”。

这个当前的“根目录”会一层层地往下分析,直到里面再也没有目录为止。



于是,我的需求可以这么去实现:

for layer_root,layer_dirs,layer_files in os.walk(root_dir):
    for file_ in layer_files:
        file_path = os.path.join(layer_root,file_)

这样一来,就能得到该目录下的所有文件的绝对地址了。

第二层对 file_  的循环再次让我感觉到Python的强大,它已经将对应的 layer_root 提出!!!


同理,目录只要把遍历的文件改成目录就好:

for layer_root,layer_dirs,layer_files in os.walk(root_dir):
    for dir in layer_dirs:
         dir_path = os.path.join(layer_root,dir)





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值