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

简介: 前言如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件walk功能简介1.os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下。2.walk()方法语法格式如下:os.walk(top,topdown=True,onerror=None, followlinks=False)top 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。

前言

如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件

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\python2"  # 查找文件的路径
for fpath, dirname, fnames in os.walk(path):
    print(fpath)  # 所有的文件夹路径      微信公众号:yoyoketang

img_81ea4af107b380deaa71696bf2f0e3ec.png

2.第二个参数dirname是遍历打印所有的文件夹名称

# coding:utf-8
import os
path = r"D:\test\python2"  # 查找文件的路径
for fpath, dirname, fnames in os.walk(path):
    print(dirname)  # 所有的文件名    微信公众号:yoyoketang

img_d5d7e380ef4ecdc7b5c7ac0051158ca9.png

3.第三个参数fnames是遍历打印所有的文件名

# coding:utf-8
import os
path = r"D:\test\python2"  # 查找文件的路径
for fpath, dirname, fnames in os.walk(path):
    print(fnames)  # 所有的文件名    微信公众号:yoyoketang

img_63d64d9327cfe53a27980a9af70db115.png

遍历所有的文件

1.遍历查找文件夹内所有的子文件(不包含文件夹)

2.用endswith判断查找后置是.py结尾的

# coding:utf-8
import os

def get_files(path='D:\\xx', rule=".py"):
    all = []
    for fpathe,dirs,fs in os.walk(path):   # os.walk是获取所有的目录
        for f in fs:
            filename = os.path.join(fpathe,f)
            if filename.endswith(rule):  # 判断是否是"xxx"结尾
                all.append(filename)
    return all

if __name__ == "__main__":
    b = get_files(r"D:\test\python2")
    for i in b:
        print i

img_8531c78bb8a1d6ac93cb4364c712e783.png

python自动化学习交流QQ群:226296743

相关文章
|
13天前
|
Python
[python]为指定目录下的文件名批量加前缀
[python]为指定目录下的文件名批量加前缀
|
13天前
|
算法 Python
【Leetcode刷题Python】剑指 Offer 33. 二叉搜索树的后序遍历序列
本文提供了一种Python算法,用以判断给定整数数组是否为某二叉搜索树的后序遍历结果,通过识别根节点并递归验证左右子树的值是否满足二叉搜索树的性质。
11 3
|
14天前
|
Python
【Leetcode刷题Python】105. 从前序与中序遍历序列构造二叉树
LeetCode上105号问题"从前序与中序遍历序列构造二叉树"的Python实现,通过递归方法根据前序和中序遍历序列重建二叉树。
13 3
|
14天前
|
Python
【Leetcode刷题Python】145. 二叉树的后序遍历
LeetCode上145号问题"二叉树的后序遍历"的Python实现方法。
13 2
|
14天前
|
Python
【Leetcode刷题Python】144. 二叉树的前序遍历
LeetCode上144号问题"二叉树的前序遍历"的Python实现方法。
12 1
|
1月前
|
算法 Python
Python图论探索:从理论到实践,DFS与BFS遍历技巧让你秒变技术大牛
【7月更文挑战第11天】图论核心在于DFS与BFS。DFS深入探索,适用于找解空间;BFS逐层扩展,擅寻最短路径。
35 8
|
13天前
|
分布式计算 Python
【python笔记】高阶函数map、filter、reduce
【python笔记】高阶函数map、filter、reduce
|
13天前
|
Python
【python笔记】使用zip函数迭代多个可迭代对象
【python笔记】使用zip函数迭代多个可迭代对象
|
1月前
|
存储 算法 Python
Python图论实战:从零基础到精通DFS与BFS遍历,轻松玩转复杂网络结构
【7月更文挑战第11天】图论在数据科学中扮演关键角色,用于解决复杂网络问题。Python因其易用性和库支持成为实现图算法的首选。本文通过问答形式介绍DFS和BFS,图是节点和边的数据结构,遍历用于搜索和分析。Python中图可表示为邻接表,DFS用递归遍历,BFS借助队列。DFS适用于深度探索,BFS则用于最短路径。提供的代码示例帮助理解如何在Python中应用这两种遍历算法。开始探索图论,解锁更多技术可能!
63 6
|
14天前
|
Python
【Leetcode刷题Python】94. 二叉树的中序遍历
LeetCode上94号问题"二叉树的中序遍历"的Python实现方法。
7 0