前言 如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件 一、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](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
```