回溯算法实现在特定路径下查找文件

题目描述:给定你一个路径,一个文件名。写脚本查找这个路径下(包括子目录)所有叫这个文件名的文件。

即,本文用Python实现

find path -name file_name

这个功能。


乍一看感觉挺简单的,一个递归就可以实现。实际上,得用回溯思想。请欣赏代码:

# author: muzhan
import os
import os.path as osp

def find(path, name, res=[]):
    ls = os.listdir(path)
    if name in ls:
        res.append(osp.join(path, name))
    for sth in ls:
        if osp.isdir(osp.join(path, sth)):
            find(osp.join(path, sth), name, res)
    return res


if __name__ == "__main__":
    current_path = './jsons/'
    name = 'apple.json'
    abs_path = find(current_path, name)
    print(abs_path)

解析
首先要了解回溯的一般要领:
· 分支+递归;
· 合适的判断条件(减少分支);
· 中间结果要伴随形参传递;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木盏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值