python的遍历模式

python的遍历在程序中很重要,详细了解一下遍历模式,可以应用于任务分发,数据的读写中。

python的 递归遍历目录:

import os

def getAllDirRE(path, sp = ""):    #得到当前目录下所有的文件    filesList = os.listdir(path)    #处理每一个文件    sp += "   "    for fileName in filesList:        #判断是否是路径(用绝对路径)        fileAbsPath = os.path.join(path, fileName)        if os.path.isdir(fileAbsPath):            print(sp + "目录:", fileName)            #递归调用            getAllDirRE(fileAbsPath, sp)        else:            print(sp + "普通文件:", fileName)

getAllDirRE(r"C:\Users\xlg\Desktop\Python-1704\day09\temp\dir")

python栈模拟递归遍历目录(深度遍历):
import os

def getAllDirDE(path):    stack = []    stack.append(path)

    #处理栈,当栈为空的时候结束循环    while len(stack) != 0:        #从栈里取出数据        #[]        dirPath = stack.pop()        #print(dirPath)        #目录下所有文件        filesList = os.listdir(dirPath)        #print(filesList)        #处理每一个文件,如果是普通文件则打印出来,如果是目录则将该目录的地址压栈        for fileName in filesList:            fileAbsPath = os.path.join(dirPath, fileName)            if os.path.isdir(fileAbsPath):                #是目录就压栈                print("目录:" + fileName)                stack.append(fileAbsPath)                #["B", "E", "F"]            else:                #打印普通文件                print("普通:" + fileName)

getAllDirDE(r"C:\Users\xlg\Desktop\Python-1704\day09\temp\dir")

python的广度遍历目录(队列):
import osimport collections

def getAllDirQU(path):    queue = collections.deque()    #进队    queue.append(path)    while len(queue) != 0:        #出队数据        dirPath = queue.popleft()        #找出所有的文件        filesList = os.listdir(dirPath)

        for fileName in filesList:            #绝对路径            fileAbsPath = os.path.join(dirPath, fileName)            #判断是否是目录,是目录就进队,不是就打印            if os.path.isdir(fileAbsPath):                print("目录:" + fileName)                queue.append(fileAbsPath)            else:                print("普通文件:" + fileName)

getAllDirQU(r"C:\Users\xlg\Desktop\Python-1704\day09\temp\dir")
 
 

原文地址:https://www.cnblogs.com/mumu1/p/12708277.html

时间: 04-14

python的遍历模式的相关文章

Python文件遍历二种方法

分享下有关Python文件遍历的两种方法,使用的OS模块的os.walk和os.listdir实现. 关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os.listdir()递归遍历.方法一:利用os.walkos.walk可以自顶向下或者自底向上遍历整个文件树,然后返回一个含有3个元素的tuple,(dirpath, dirnames, filenames).注意,os.walk()会返回一个generater,所以调用的时候一定要放到for循环中

Python递归遍历目录下所有文件

#自定义函数: import ospath="D:\\Temp_del\\a" def gci (path): parents = os.listdir(path) for parent in parents: child = os.path.join(path,parent) #print(child) if os.path.isdir(child): gci(child) # print(child) else: print(child) gci(path) #使用os.walk方

python list遍历时删除元素

python list遍历时候删除还真需要注意下,今天帮同学处理数据,竟然傻逼了. 需求: 除了第一列,给每列加一个序号如:"1:0","2:0","3:20100307",然后删除冒号后为0的数据. 推荐做法: arrays = [ ['5001', '0', '0', '20100307', '20150109', '2', '3', '75', '0', '0', '114', '13', '2', '0', '0'], ['10001',

python list遍历

python list遍历 是对列表进行的经常性的操作.比如我们需要遍历一个列表: info = ['a','b','c','d','ee','fff'] for m in range(len(info)): print info[m] 有些朋友可能喜欢这样操作,但是其实没必要计算列表的长度了.我们可以直接用列表的迭代来处理,比如: for m in info: print m

python 正则表达式 贪婪模式的简介和匹配时的几种模式

看到一篇文章,关于python正则的,http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 贪婪模式与非贪婪模式: 正则表达式通常用于在文本中查找匹配的字符串.Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符:非贪婪的则相反,总是尝试匹配尽可能少的字符.例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb".而如果使用

浅谈Python设计模式 - 外观模式

声明:本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 外观模式 外观模式的核心在于将复杂的内部实现包装起来,只向外界提供简单的调用接口.类似现实世界中的电脑,开机按钮可以说就是一个简单的调用接口,帮用户屏蔽了复杂的内部电路. 外观设计模式 -- 有助于隐藏系统的内部复杂性,并且通过一个简化的接口向客户端暴露必要的部分.本质上,外观是在已有复杂系统之上实现的一个抽象层. 本来想引用书中的例子,但是其整个代码被复杂化,不好理解.然后在网上看到一

python+selenium遍历某一个标签中的内容

一.python+selenium遍历某一个标签中的内容 举个例子:我要获取列表标签<li></li>的内容 根据python+selenium定位到列表整体,使用for循环获取列表文本:可用于校验列表是否存在你需要的文本内容 1.获取内容不包含嵌套层列表 给出代码: from selenium import webdriver import time d = webdriver.Chrome() d.maximize_window() # 窗口最大化###登录某网站 d.get(

用Python实现工厂模式

class CarFactory: '''用Python实现工厂模式''' def creatCar(self, car_name): if car_name == 'Benz': car = Benz() elif car_name == 'BMW': car = BMW() else: car = BYD() return car class Benz: def __init__(self): print('奔驰产生了') class BMW: def __init__(self): pri

python 正则贪婪模式和非贪婪模式

贪婪模式:在表达式匹配成功的前提下,总是尽可能多的匹配字符飞天蓝模式:在表达式匹配成功的前提下,总是尽量少的匹配字符 1 # !/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import re 4 5 def test(): 6 string = "abc123456789sdsddskcas" 7 print "a(.*)c贪婪模式匹配结果:" 8 print re.findall(r"a(.*)c&quo

Python 文件遍历

Python具备强大的解析能力,其中列表解析甚至可以作用在某些并非实际存储的序列上,任何可遍历对象都可以,包括可自动逐步读取的文件. 例如下面的代码将会从逐行读取一个文本文件,并且在每一行的最后加上一个逗号. input_file_name = input('Please input the input file name : '); output_file_name = input('Please input the output file name : '); fin = open(inpu