首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >话说【遍历目录】这么个小事

话说【遍历目录】这么个小事

作者头像
偶尔敲代码
发布2026-03-17 11:30:23
发布2026-03-17 11:30:23
840
举报
文章被收录于专栏:偶尔敲代码偶尔敲代码

好久没写文章了,最近忙工作、忙给客户写点小东西,还有就是不知道写啥。

所以,水一次,记录下最近让我不想写代码的一个小问题——遍历目录

为何一直不想面对这个问题呢,一是日常没使用到,二是我就疑惑咋知道目录里有多少子目录,挖到啥程度才算底呢?

其实解决问题也很简单,只是被我想复杂了,本质原理就是递归。这个词还是读书时学C语言学到的哈哈。我就干觉得这得判断多少次啊,这效率得多低啊。。。

后面我用易语言,用递归的方式完成了这个小功能。因为涉及客户定制的东西,就不抠出代码了,反正写起来很简单。

我又用python试了下,好像更简单!一方面可以让AI写,一方面是python的库是真的全。

python的 os.walk() 直接搞定,代码如下:

代码语言:javascript
复制
def traverse_folder(folder_path):
    # 遍历指定文件夹及其子文件夹
    for root, dirs, files in os.walk(folder_path):
        # 打印当前遍历到的目录
        print(f"Directory: {root}")
        # 打印当前目录下的所有子目录
        for dir_name in dirs:
            print(f"  Subdirectory: {os.path.join(root, dir_name)}")
        # 打印当前目录下的所有文件
        for file_name in files:
            print(f"  File: {os.path.join(root, file_name)}")
# 请将 'A' 替换为实际的文件夹路径
folder_path = r'E:\DD'
traverse_folder(folder_path)

效果:

当然,我发现它明面上不是用递归的方式写的,总得让它直白地重写一次:

代码语言:javascript
复制
import os

def traverse_folder_recursive(folder_path):
    # 打印当前目录
    print(f"Directory: {folder_path}")
    try:
        # 列出当前目录下的所有文件和文件夹
        items = os.listdir(folder_path)
        for item in items:
            item_path = os.path.join(folder_path, item)
            if os.path.isdir(item_path):
                # 若为目录,则递归调用函数
                traverse_folder_recursive(item_path)
            else:
                # 若为文件,则打印文件路径
                print(f"  File: {item_path}")
    except Exception as e:
        print(f"Error accessing {folder_path}: {e}")

# 请将路径替换为实际需要遍历的路径
folder_path = r'E:\DD'
traverse_folder_recursive(folder_path)

效果:

两种方式都很简单的完成了。

所以,我想分享的是:动手去做才是硬道理,光在那瞎想是没用的。你以为的麻烦,只是你自以为的,熟能生巧能解决你的以为。再往后,标准化能解决你更多的烦恼。


- End -

更多精彩文章

点击下方名片关注【偶尔敲代码】

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 偶尔敲代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档