您的位置:

使用Python获取文件列表

介绍

在进行数据分析、机器学习等项目中,经常需要从文件夹中获取文件列表进行数据处理。使用Python可以轻松实现获取特定文件夹中的文件列表,提高项目的自动化程度。

基础方法

os模块获取文件列表

Python的标准库中包含了操作系统相关的模块,其中os模块提供了访问文件系统的功能。使用os模块中的listdir()函数可以获取指定路径中的所有文件和文件夹,返回一个列表。

import os

folder_path = "/path/to/folder"  # 文件夹路径
file_list = os.listdir(folder_path)  # 获取文件夹中的文件列表

print(file_list)  # 打印文件名列表

运行以上代码,会输出指定文件夹中的所有文件和文件夹的名称。

glob模块筛选特定文件

os模块可以获取全部的文件列表,但如果需要筛选特定类型的文件,可以使用glob模块。glob模块提供了通配符匹配文件名的功能,方便地获取指定类型的文件。

import glob

folder_path = "/path/to/folder"  # 文件夹路径
file_type = "*.csv"  # 文件类型为csv
file_list = glob.glob(folder_path + "/" + file_type)  # 获取指定类型的文件列表

print(file_list)  # 打印文件名列表

运行以上代码,会输出指定文件夹中类型为csv的所有文件名。

进阶方法

遍历文件夹

如果需要获取指定文件夹及其子文件夹中的所有文件列表,可以使用os.walk()函数遍历文件夹。os.walk()函数返回一个三元组,包含当前文件夹、当前文件夹中的文件夹名列表和文件名列表。可以使用for循环遍历获取所需的文件名。

import os

folder_path = "/path/to/folder"  # 文件夹路径
file_list = []  # 所有文件列表

for root, dirs, files in os.walk(folder_path):  # 遍历文件夹
    for file in files:
        file_list.append(os.path.join(root, file))  # 将文件的绝对路径加入到列表中

print(file_list)  # 打印文件名列表

运行以上代码,会输出指定文件夹及其子文件夹中的所有文件名。

按文件大小排序

在处理大量文件时,按照文件大小排序可以方便地找出文件大小异常的文件。使用os.path.getsize()函数可以获取文件大小,使用sorted()函数可以按文件大小排序。

import os

folder_path = "/path/to/folder"  # 文件夹路径
file_list = []  # 所有文件列表

for root, dirs, files in os.walk(folder_path):  # 遍历文件夹
    for file in files:
        file_list.append(os.path.join(root, file))  # 将文件的绝对路径加入到列表中

file_list_sorted = sorted(file_list, key=os.path.getsize)  # 按文件大小排序
print(file_list_sorted)  # 打印文件名列表

运行以上代码,会输出指定文件夹及其子文件夹中的所有文件名,并按文件大小进行排序。

总结

Python提供了多种方法获取文件列表,可以根据具体需求和文件路径灵活组合使用。获取文件列表可以提高项目的自动化程度,减少手动处理的时间和错误。