首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python深度遍历、广度遍历递归函数遍历目录【详细讲解】

Python通过os模块可以实现对文件或者目录遍历,这里想实现这样的效果有三种方法,分别是递归函数遍历目录,栈深度遍历和队列广度遍历。下面就通过这三种方法来演练一下。...通过以下目录结构来演示 图片1.png 1.递归函数遍历目录 import os path = r'C:\Users\Administrator\Desktop\python知识总结\1.python自学网...(path, sp=''):     flist = os.listdir(path) # print(flist)     sp += '\t' for f in flist: # 遍历目录...a.txt 文件 b.txt 目录 f 目录 c 文件 11.txt 目录 t 目录 q 文件 test.py ---- 2.栈结构遍历目录 import os path = r'C:\Users\Administrator...= 0: # 数据出队         dpath = queue.popleft() # 遍历目录中所有目录和文件,是目录继续遍历,不是目录打印出来         flist

3.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

目录遍历漏洞

0x001 漏洞简介   目录遍历(路径遍历)是由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件...0x002 漏洞原理   目录遍历漏洞原理比较简单,就是程序在实现上没有充分过滤用户输入的../之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。这里的目录跳转符可以是.....网站应用提供文件下载,其中文件储存在服务器中,网站脚本利用代码获取此目录文件将其显示在网站上,其中如果没有对代码进行相关的验证过滤,将会导致目录遍历漏洞。...6. web服务器配置不当 由于web服务器的配置不当造成的index of /目录遍历。...我们可以直接利用谷歌语法来寻找此形式的目录遍历漏洞 intitle:index of 0x005 漏洞防范 1.

2.1K20

接着讲递归遍历

递归遍历 递归的另一个重要应用是递归遍历。 想象一下,我们有一家公司。...如果我们在代码中放置3-4个嵌套的子循环来遍历单个对象,它就会变得相当丑陋。 让我们尝试递归。...或者它是一个有N个子部门的对象——然后我们可以进行N次递归调用,以得到每个子部门的和并组合结果。 第一种情况是递归的基础,这种简单的情况,当我们得到一个数组。...这就是递归的力量。它也适用于任何层次的子部门嵌套。 下面是调用的图表: ? 我们很容易看到这个原则:对于一个对象{…}子调用,而数组是递归树的“叶”,它们给出直接的结果。...循环(val of object .values(obj))以遍历对象值:object。values返回它们的数组。

46720

递归遍历

先序非递归遍历二叉树,中序非递归遍历二叉树,后序非递归遍历二叉树及双栈法。...先序非递归遍历二叉树 先序非递归遍历比较简单,感觉与DFS类似,根据先序遍历的规则根左右,先将根节点压入栈,然后遍历左子树,再遍历左子树的左子树,一头走到NULL,把每次遍历的左子树的根节点依次入栈并把当前结点数据打印出来...Creat(a+1,b,i); T->rchild = Creat(a+i+1,b+i+1,n-i-1); return T; } } return NULL; } //先序非递归遍历...= Creat(a+1,b,i); T->rchild = Creat(a+i+1,b+i+1,n-i-1); return T; } } return NULL; } //中序遍历递归...单栈法 后序非递归遍历和先序中序非递归开始类似,先将左子树的左孩子的的左孩子的….每个节点压入栈。

85610

目录遍历小总结。

什么是目录遍历漏洞 目录遍历漏洞是由于网站存在配置缺陷,导致网站目录可以被任意浏览,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以为进一步入侵网站做准备。...目录遍历漏洞可能存在于Web服务器软件本身,也可能存在于Web应用程序之中。好比如IIS或者Apache这些中间件若是配置不当,就会造成目录遍历漏洞。 这里要注意!!!...目录遍历漏洞和任意文件读取漏洞不一样。目录遍历漏洞是泄露网站的目录结构,而任意文件读取不仅泄露网站的目录结构,而且可以直接获得网站文件的内容,甚至可以下载。...但是目录遍历漏洞和文件包含漏洞本质以及利用方法一样,一定要区分的话,我理解如下: 目录遍历:是对本操作系统的文件进行读取; 文件包含:分别是本地包含和远程包含,本地包含和目录遍历一致; 2....如何挖掘目录遍历漏洞 (1) 利用谷歌搜索挖掘 当确定目标站点时,例如test.com。

3.6K30

树的非递归遍历

树使用递归遍历非常方便,如果将代码拉伸开来,我们能否是否非递归代码来实现呢?当然是可以的,我们只要把递归的循环步骤修改为while就可以了。...并放弃其左子树; 如果结点没有左子树,访问该结点; 步骤2: 如果结点有右子树,重复步骤1; 如果结点没有右子树(结点访问完毕),根据栈顶指示回退,访问栈顶元素,并访问右子树,重复步骤1 如果栈为空,表示遍历结束...TirTNode* findLeft(TirTNode* tree, std::stack& st) { if (nullptr == tree) return nullptr; // 持续遍历...= pLeft->rightChild) { // 如果有,则遍历这个树下最深的左子树 pLeft = findLeft(pLeft->rightChild, st); } else //如果节点没有右子树...st.empty()) { // 访问栈顶元素 pLeft = st.top(); // 弹出 st.pop(); } else { // 遍历完成 return; } } } } 调用时,只需给 myTreeOrder

16420

Python 学习之目录递归

今天要学习的内容是关于栈和队列的简单介绍,之后分别用递归函数、栈、队列对自己的目录文件进行深度遍历与广度遍历。 栈的介绍1 栈是一种特殊的线性表。...(['A', 'B', 'C']) print(q) # 出队 p = q.popleft() print(p) # A print(q) # deque(['B', 'C']) 函数递归目录...# 递归调用 getAllDir(fileAbsPath, sp) else: print(sp + "普通文件:", fileName...) getAllDir(p, sp="") 队列之广度遍历4 广度遍历:1 是根目录 ,1 进栈处理之后,2 5 进栈,将 2 和 5 处理之后,依次处理 3 4 6 7,按照层级处理 # 广度遍历...print("普通文件:"+fileName) getAllDirBe(p) 栈之深度遍历5 深度遍历:1 是根目录 ,1 进栈处理之后,2 5 进栈,将 2 目录下的全部处理完之后

60440

递归遍历-LeetCode 124、112、113(递归遍历二叉树,回溯法)

示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 6 解题思路: 我们从根节点开始递归,最大值的路径和可能出现在左子树,右子树以及包含根节点的左右子树三种情况...因此使用递归算法从根节点开始遍历,如果左右子树最大路径和大于0,则取出该路径的最大值,否则为零,也就是说如果大于零,则加上之后result是可以增加的!...因此对result进行更新,同时递归函数也返回root->val + max(0, max(left, right))。...解题思路: 和上一题的思路一模一样,但这一题需要我们将中间遍历的节点值保存起来,因此需要一个tmp数组来保存我们遍历过的节点!...这里面需要注意的一点就是回溯法的使用,当修改了一个状态之后,递归结束后,需要把这个状态重新置为之前的状态。 比如tmp中push_back了一个值,当递归结束进行回溯阶段,需要pop_back()。

88370

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券