Python 遍历所有文件夹获取指定文件

以下图中文件夹为例,分三种情况获取文件名

该文件夹包含两个文件夹及四个文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一、获取指定文件夹下所有文件名

使用os.listdir()实现

os.listdir(path):返回指定目录下所有文件名及目录名

实现代码:

import os
path='E:\jymx'
files=os.listdir(path)
for file in files:
    print(file)

在这里插入图片描述
二、获取文件夹下指定文件名

使用glob.glob函数实现:

glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,类似于Windows下的文件搜索,支持通配符操作。glob中支持的通配符有三种:

‘*’ 匹配0个或多个字符
‘?’ 仅匹配一个字符
‘[]’ 匹配指定范围内的字符,如[0-9]匹配数字

该方法返回所有匹配的文件路径列表。(若获取文件名搭配os.path.basename()使用)

该方法需要一个参数用来指定要匹配的文件路径(字符串类型)绝对路径、相对路径。

实现代码:

1、匹配某指定路径下包含交易明细的csv文件(绝对路径)

import os
from glob import glob
paths = glob(r'E:\jymx\*交易明细信息.csv')
for path in paths:
    file = os.path.basename(path)  #返回文件名
    print(file)

在这里插入图片描述
2、匹配某指定路径下的所有文件(绝对路径)

import os
from glob import glob
paths = glob(r'E:\jymx\*')
for path in paths:
    file = os.path.basename(path)
    print(file)

在这里插入图片描述
3.使用相对路径来进行匹配

’.’ 指代当前目录
’. . ’ 指代当前目录的上一级目录
import os
os.chdir(r'E:\jymx\新建文件夹')
from glob import glob
paths = glob(r'..\*')
for path in paths:
    file = os.path.basename(path)
    print(file)

在这里插入图片描述
三、获取文件夹及子文件夹下指定文件名

使用os.walk()函数实现

os.walk的函数声明为:
walk(top, topdown=True, οnerrοr=None, followlinks=False)

参数:
top 是你所要遍历的目录的地址,即顶层目录
topdown 为真,则优先遍历top目录,否则优先遍历top的子目录(默认为开启)
onerror 需要一个 callable 对象,当walk需要异常时,会调用
followlinks 如果为真,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认 关闭)

os.walk 的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。

每次遍历的对象都是返回的是一个三元组(dirpath, dirnames, filenames) ,依次代表根目录路径、本目录中文件夹名字、本目录中文件名字。

例如:

import os
paths = os.walk(r'E:\jymx')
for path in paths:
    print(path)

在这里插入图片描述

实现代码:

import os
file_tpye = '交易明细'
paths = os.walk(r'E:\jymx')
for root,dirs,files in paths:
    for file in files:
        if file_type in file:
            print(file)
            #print(os.path.join(root,file))#带路径的文件名

在这里插入图片描述

  • 5
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值