Python中os.listdir和os.walk的区别

os.listdir和os.walk都是获取指定目录下的文件内容

两者有一定的区别,现在举例说明:

如下图所示目录结构:
在这里插入图片描述
在这里插入图片描述

os.walk

import os
def file_name(file_site):
    for root, dirs, files in os.walk(file_dir):
        print("root", root)      # 当前目录路径
        print("dirs", dirs)      # 当前路径下所有子文件夹
        print("files", files)    # 当前路径下所有非子文件夹的文件
        
file_name_walk('E:/文件')

输出:

root : E:/文件             # 当前目录
dirs : ['A', 'B']          # 当前目录下的子文件夹
files : ['text.txt']       # 当前目录下的非子文件夹的文件
root : E:/文件\A           # 子文件夹A的目录
dirs : ['A1']              # 子文件夹A中的子文件夹A1
files : []                 # 子文件夹A中没有非文件夹
root : E:/文件\A\A1         # 子文件夹A1的目录
dirs : []                  # 子文件夹A1中没有子文件夹
files : []                 # 子文件夹A1中没有非文件夹
root : E:/文件\B            # 子文件夹B的目录
dirs : []                  # 子文件夹B中的没有子文件夹
files : []                 # 子文件夹B中的没有非文件夹

从上面可以看出:os.walk每次会把访问指定地址的:1、文件目录路径;2、文件中的子文件夹;3、文件中的非文件夹内容;然后一直类似遍历下去,不断深入文件的最底层。

os.listdir

def file_name(file_dir):
    for files in os.listdir(file_dir):  # 不仅仅是文件,当前目录下的文件夹也会被认为遍历到
        print("files:", files)

输出:

files: A            # 指定路径文件夹的子文件
files: B            # 指定路径文件夹的子文件
files: text.txt     # 指定路径文件夹的非文件夹内容   

可以看出:os.listdir 直接访问指定文件夹内的内容,不会再嵌套的继续访问下去。

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值