python获取指定目录下的所有指定后缀的文件名

本文介绍了一种使用Python批量获取指定目录下所有.log文件的方法。通过os模块的listdir和splitext函数,可以轻松地筛选出特定后缀的文件,并打印其文件名。

python获取指定目录下的所有指定后缀的文件名

使用到的函数有:
os.path.splitext():分离文件名与扩展名

代码如下:

#! /usr/bin/python
# -*- coding: utf-8 -*-

import os


def getFileName(path):
    ''' 获取指定目录下的所有指定后缀的文件名 '''

    f_list = os.listdir(path)
    # print f_list
    for i in f_list:
        # os.path.splitext():分离文件名与扩展名
        if os.path.splitext(i)[1] == '.log':
            print i


if __name__ == '__main__':

    path = '/home/xx/work/ETS/log/1/1'
    getFileName(path)

执行结果如下:

1429761218.log
1429761376.log
1429761162.log
1429761249.log
1429761208.log
1429755686.log
1429761294.log
1429761203.log
1429755747.log
1429761269.log
1429755737.log
1429761228.log
1429755717.log
1429761254.log
1429761157.log
1429761284.log
1429761330.log
1429761355.log
1429761274.log
1429761350.log
1429761142.log
1429761152.log
1429761325.log
1429761259.log
1429761239.log
1429761340.log
1429761300.log
1429761213.log
1429761244.log
1429761335.log
1429755757.log
1429761366.log
1429761289.log
1429761345.log
1429755676.log
1429761360.log
1429761279.log
1429755697.log
1429761371.log
1429761188.log
1429761167.log
1429761223.log
1429755727.log
1429761315.log
1429761264.log
1429761310.log
1429761183.log
1429755707.log
1429761147.log
1429761320.log
1429761233.log
1429761305.log
<think>我们参考用户的问题和提供的引用,用户想了解如何使用Python获取指定目录下特定后缀文件列表。引用中提到了几种方法,包括使用os.listdir结合条件过滤,以及使用os.walk来递归遍历子文件夹。根据引用:-引用[1]介绍了os.walk的使用,它可以遍历目录树,包括子文件夹。-引用[4]提供了使用os.listdir(只能当前目录)和os.walk(可以遍历子目录)的代码示例。-引用[3]和引用[5]也提到了类似的方法。因此,我们可以提供两种方法:1.如果不遍历子文件夹(只在当前目录下查找),使用os.listdir配合字符串方法endswith或os.path.splitext。2.如果需要遍历子文件夹(递归查找),则使用os.walk。同时,我们可以参考引用[4]中的代码,但要注意该代码中有一个注释错误:使用os.path.splitext时,应该取扩展名部分(索引1)并比较,而不是索引0(索引0是文件名不带扩展名部分)。下面我们分别给出两种方法的代码示例和解释。</think> 以下是根据您的需求,使用 Python 获取指定目录下特定后缀文件列表的两种常用方法: ### 方法1:当前目录查找(不含子文件夹) ```python import os def get_files_in_current_dir(directory, suffix): """获取当前目录指定后缀文件列表(不包含子文件夹)""" return [f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f)) and f.endswith(suffix)] # 示例用法 pdf_files = get_files_in_current_dir(r"D:\文档资料", ".pdf") ``` ### 方法2:递归查找(包含子文件夹) ```python import os def get_files_recursively(directory, suffix): """获取指定目录指定后缀文件列表(包含所有子文件夹)""" results = [] for root, _, files in os.walk(directory): for file in files: if file.endswith(suffix): results.append(os.path.join(root, file)) return results # 示例用法 image_files = get_files_recursively(r"C:\图片库", ".jpg") ``` ### 关键点说明 1. **核心模块**:使用 Python 内置 `os` 模块进行文件操作 2. **路径处理**: - `os.listdir()`:获取当前目录文件列表 - `os.walk()`:递归遍历所有子目录(高效遍历目录树) 3. **后缀判断**: - 使用 `.endswith()` 字符串方法判断文件后缀 - 或 `os.path.splitext()[1] == suffix` 获取扩展名 4. **路径组合**:使用 `os.path.join()` 正确拼接路径 > 注:示例中参数 `directory` 建议使用原始字符串格式(`r"路径"`)避免转义问题,文件后缀建议统一小写处理(`.lower()`)避免大小写敏感问题[^1][^3] ### 实际应用场景 1. 批量处理特定类型文件(如转换图片格式) 2. 清理临时文件(查找 `.tmp` 文件) 3. 文档自动化处理(批量分析 PDF/Word 文档) 4. 数据整理(收集特定数据格式文件
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值