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

Posted jason89

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python笔记4-遍历文件夹目录os.walk()相关的知识,希望对你有一定的参考价值。

前言

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

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

技术分享图片

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

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

技术分享图片

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

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

技术分享图片

遍历所有的文件

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

技术分享图片

 

以上是关于python笔记4-遍历文件夹目录os.walk()的主要内容,如果未能解决你的问题,请参考以下文章

Python os.walk() 遍历出当前目录下的文件夹和文件

python遍历目录os.walk(''d:\test2",topdown=False)

Python - Os.walk循环遍历不同驱动器中的目录列表

Python系列python os.walk去掉特定目录

【Python】os.walk的使用及获取文件夹下所有文件的大小

python3.4下遍历文件目录,不需要再特殊处理中文编码