遍历

Python 用 os.walk 遍历目录

强颜欢笑 提交于 2020-01-04 16:49:11
今天第一次进行 文件遍历,自己递归写的时候还调试了好久,(主要因为分隔符号的问题),后来发现了os.walk方法,就忍不住和大家分享下. 先看下代码: import os for i in os.walk('c:'+os.sep+'ant'): print i[1] 下面是输出: c:\ant c:\ant\bin c:\ant\docs c:\ant\docs\ant2 c:\ant\docs\antlibs c:\ant\docs\antlibs\antunit c:\ant\docs\antlibs\compress c:\ant\docs\antlibs\dotnet c:\ant\docs\antlibs\props c:\ant\docs\antlibs\svn c:\ant\docs\images c:\ant\docs\manual c:\ant\docs\manual\api c:\ant\docs\manual\api\org c:\ant\docs\manual\api\org\apache c:\ant\docs\manual\api\org\apache\tools c:\ant\docs\manual\api\org\apache\tools\ant c:\ant\docs\manual\api\org\apache\tools\ant\dispatch

python笔记4-遍历文件夹目录os.walk()

混江龙づ霸主 提交于 2020-01-04 16:48:50
前言 如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件 walk功能简介 1.os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下。 2.walk()方法语法格式如下: os.walk(top,topdown=True,onerror=None, followlinks=False) top 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。 topdown 可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。 onerror 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。 followlinks 设置为 true,则通过软链接访问目录。 以上参考文档 http://www.runoob.com/python/os-walk.html 遍历文件 1.第一个参数fpath是遍历打印所有的文件路径 # coding:utf-8 import os path = r"D:\test

python中的os.walk

[亡魂溺海] 提交于 2020-01-04 16:44:48
原文出处:https://www.jianshu.com/p/bbad16822eab python中os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。 1.载入 要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os from os import walk 2.使用 os.walk的函数声明为: walk(top, topdown=True, onerror=None, followlinks=False) 参数 top 是你所要便利的目录的地址 topdown 为真,则优先遍历top目录,否则优先遍历top的子目录(默认为开启) onerror 需要一个 callable 对象,当walk需要异常时,会调用 followlinks 如果为真,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭) os.walk 的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。 每次遍历的对象都是返回的是一个三元组(root,dirs,files) root 所指的是当前正在遍历的这个文件夹的本身的地址 dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录) files 同样是 list , 内容是该文件夹中所有的文件

Python 之 os.walk()

一曲冷凌霜 提交于 2020-01-04 16:44:29
原文地址https://www.cnblogs.com/JetpropelledSnake/p/8982495.html http://www.runoob.com/python/os-walk.html os.walk方法,主要用来遍历一个目录内各个子目录和子文件。 os.walk(top, topdown=True, onerror=None, followlinks=False) 可以得到一个三元tupple(dirpath, dirnames, filenames), 第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。 dirpath 是一个string,代表目录的路径, dirnames 是一个list,包含了dirpath下所有子目录的名字。 filenames 是一个list,包含了非目录文件的名字。 这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name). 通过for循环自动完成递归枚举 例如: F:\aaa 目录是这样的文件目录结构 F:\aaa |--------1.txt |--------2.txt |--------3.txt |--------4 |-------5.txt |-------6.txt |-------7.txt 分别打印各个参数的实际值 #!/usr/bin

Java入门(三)——集合概讲

℡╲_俬逩灬. 提交于 2020-01-04 03:25:24
集合(或者叫容器)是Java的核心知识点,它有着很深的深度。我们这里不会设计多深,仅仅作为了解入门,深入了解请移步各种集合源码文章。好的,下面正是开始介绍... Java集合为何而生 我们知道,Java是一门面向对象编程语言,这也就意味着程序中存在着大量的对象。这个时候问题就来了,我们如何很好的存放和操作对象呢?如果你能明白这个问题,那么你就知道了“集合为何而生”这个问题的答案。 总结一句: Java给我们提供了工具(集合)方便我们去存放和操作多个Java对象 Java集合入门学习 Java集合的目的是方便操作多个对象,同时,它提供一系列的API来供我们操作。因此,在初学Java集合的时候我们更多的是 学习这些API的用法 。 对Java集合的API使用有一定了解之后,我们就应该从 面向对象 的角度去理解它。为什么会抽象出多个接口,以及每个接口有什么特征。 我们可以总结出几个常用的实现类,这几个常用的实现类我们必须知道它的数据结构是什么,什么时候使用这个类。 同时,你还需要学习和了解数据结构: 学完上面的内容后,我们基本掌握了常用集合的数据结构,也就知道了如何选择合适的集合容器去存储我们的对象。总之, 学完常见实现类的数据结构之后,对它们的使用场景也有了更加清晰的认识 。 Java集合类简介 Java集合是一个很庞大的知识点,话不多说,上图感受下: Java集合的

JavaScript双向绑定

那年仲夏 提交于 2020-01-04 00:40:08
什么是双向绑定? 双向,逻辑层<->视图层 绑定,当任一层发生变化时,要在另一层得到体现 即,当视图层有用户输入时,输入数据会自动传递给逻辑层。而当逻辑层有数据变化时,视图层会自动展示这些变化 如何做? 首先,我们需要关注的点,是变化。围绕变化本身,我们进一步需要知道是谁、在什么时候、发生了什么事,最后产生了什么内容。 监听,我们需要监听相关元素,比如视图层,想要获悉文本框内容变化,就监听文本框input事件,以此类推。 同步更新,当监听到变化时,我们要把变化同步更新到另一个层。包含对象赋值,表单元素渲染等。 示例(一) 监听页面与js对象,并在变化发生时通知对方做出相应变化。 监听页面元素,遍历所有相关元素,并监听input事件,当监听到时则将当前文本框内容赋值给对应的变量。 //选择根元素 let root = document.querySelector(_this.el); const nodes = root.children; //遍历所有节点 Object.values(nodes).forEach(nodeChild => { //选择包含v-model属性的节点 if (nodeChild.hasAttribute('v-model')) { //监听input事件 nodeChild.addEventListener('input', function (res

双向数据绑定原理

吃可爱长大的小学妹 提交于 2020-01-04 00:20:13
几种实现双向绑定的做法: 目前几种主流的mvc(vm)框架都实现了单项数据绑定,而我所理解的双向数据绑定,无非就是在单项数据绑定的基础上给输入元素input textare等添加了change(input)事件,来动态修改model和view,并没有多高深。所以无须介怀是实现的单项或者双向绑定,实现数据绑定 大致几种: 发布者-订阅者(backbone.js); 一般通过sub,pub的方式实现数据和视图的绑定监听,更新数据的方式通常是 vm.set('property',vlue); 脏值检查(angular.js); Angular.js是通过脏值检测的方式比对数据是否有变更。来决定是否更新视图,最简单方式是通过setinterval()定时轮询检测数据变动,当然angular只是在指定的事件触发时进入脏值检测: Ng-click $http $location $timeout $interval $digest()||$apply() 数据劫持(vue.sj); Vue.js则采用数据劫持+发布者订阅者模式的方式,通过0bject.defineProperty()来劫持各个属性的setter getter,在数据发生改变时发布消息给订阅者,触发相应的监听回调。具体整理: vue是通过数据劫持的方式来做数据绑定,其中核心方法是通过object,defineProperty(

[LeetCode] 1254、统计封闭岛屿的数目

让人想犯罪 __ 提交于 2020-01-04 00:03:51
题目描述 如果一座岛屿 完全 由水域包围,即陆地边缘上下左右所有相邻区域都是水域,那么我们将其称为 「 封闭岛屿 」(每个位置要么是陆地(记号为 0 )要么是水域(记号为 1 ))。请返回封闭岛屿的数目。 输入:grid = [[1,1,1,1,1,1,1,0],[1,0,0,0,0,1,1,0], [1,0,1,0,1,1,1,0],[1,0,0,0,0,1,0,1],[1,1,1,1,1,1,1,0]] 输出:2 解释:灰色区域的岛屿是封闭岛屿,因为这座岛屿完全被水域包围(即被 1 区域包围)。 解题思路 回溯经典题目:39、40、46、47、51、52等。本题和第1020题类似,普通的“ DFS着色法 ”就可以啦。本题和最普通的“数岛屿个数”(leetcode 200)的区别只是要求封闭,所以只需要代入一个变量表示岛屿是否封闭就可以啦。我的实现。 一题看透 DFS 和 DFS :DFS 和 BFS 都是常用来遍历搜索树或图的算法。二叉树中的前序、中序和后序遍历都属于DFS,层次遍历属于BFS。DFS常用递归和栈来实现,BFS常用队列来实现。 解题思路如下:每次遇到陆地则DFS。对该过程进行判断:如果途中丝毫不经过“边界”,则这就算作1个封闭岛屿;如果经过“边界”,则不算。 题目要我们求出封闭岛屿的个数,那我们可以先遍历矩阵中的每一个位置,如果当前位置为0(陆地)

jquery的$().each,$.each的区别

百般思念 提交于 2020-01-03 22:10:30
在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法。两个方法是有区别的,从而这两个方法在针对不同的操作上,显示了各自的特点。 $().each,对于这个方法,在dom处理上面用的较多。如果页面有多个input标签类型为checkbox,对于这时用$().each来处理多个checkbook,例如: $(“input[name=’ch’]”).each(function(i){ if($(this).attr(‘checked’)==true) { //一些操作代码 } 回调函数是可以传递参数,i就为遍历的索引。 对于遍历一个数组,用$.each()来处理,简直爽到了极点。例如: $.each([{“name”:”limeng”,”email”:”xfjylimeng”},{“name”:”hehe”,”email”:”xfjylimeng”},function(i,n) { alert(“索引:”+i,”对应值为:”+n.name); }); 参数i为遍历索引值,n为当前的遍历对象. var arr1 = [ “one”, “two”, “three”, “four”, “five” ]; $.each(arr1, function(){ alert(this); }); 输出:one two three four five var arr2

jquery的$().each,$.each的区别

旧街凉风 提交于 2020-01-03 22:10:10
在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法。两个方法是有区别的,从而这两个方法在针对不同的操作上,显示了各自的特点。 $().each,对于这个方法,在dom处理上面用的较多。如果页面有多个input标签类型为checkbox,对于这时用$().each来处理多个checkbook,例如: $(“input[name=’ch’]”).each(function(i){ if($(this).attr(‘checked’)==true) { //一些操作代码 } 回调函数是可以传递参数,i就为遍历的索引。 对于遍历一个数组,用$.each()来处理,简直爽到了极点。例如: $.each([{“name”:”limeng”,”email”:”xfjylimeng”},{“name”:”hehe”,”email”:”xfjylimeng”},function(i,n) { alert(“索引:”+i,”对应值为:”+n.name); }); 参数i为遍历索引值,n为当前的遍历对象. var arr1 = [ “one”, “two”, “three”, “four”, “five” ]; $.each(arr1, function(){ alert(this); }); 输出:one two three four five var arr2