介绍
在进行数据分析、机器学习等项目中,经常需要从文件夹中获取文件列表进行数据处理。使用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提供了多种方法获取文件列表,可以根据具体需求和文件路径灵活组合使用。获取文件列表可以提高项目的自动化程度,减少手动处理的时间和错误。