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

Python 读取文件名生成目录 python读取文件夹名_绝对路径

Python 读取文件名生成目录 python读取文件夹名_绝对路径_02


Python 读取文件名生成目录 python读取文件夹名_绝对路径_03


Python 读取文件名生成目录 python读取文件夹名_绝对路径_04


一、获取指定文件夹下所有文件名

使用os.listdir()实现

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

实现代码:

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

Python 读取文件名生成目录 python读取文件夹名_相对路径_05


二、获取文件夹下指定文件名

使用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)

Python 读取文件名生成目录 python读取文件夹名_python_06


2、匹配某指定路径下的所有文件(绝对路径)

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

Python 读取文件名生成目录 python读取文件夹名_文件名_07


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)

Python 读取文件名生成目录 python读取文件夹名_相对路径_08


三、获取文件夹及子文件夹下指定文件名

使用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)

Python 读取文件名生成目录 python读取文件夹名_相对路径_09

实现代码:

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))#带路径的文件名

Python 读取文件名生成目录 python读取文件夹名_文件名_10