在Python中读取文件夹下特定文件的方法主要包括以下四种,涵盖文件查找、读取及操作:
一、使用os.walk()
遍历文件夹
通过递归遍历目录结构,可获取所有文件路径,结合条件判断筛选目标文件。
示例代码 :
import os
def find_files_with_string(folder_path, string_to_find):
matching_files = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if string_to_find in file:
matching_files.append(os.path.join(root, file))
return matching_files
folder_path = '/path/to/your/folder'
string_to_find = 'your_string'
result = find_files_with_string(folder_path, string_to_find)
print(result)
二、使用glob.glob()
匹配文件模式
支持Unix风格路径模式匹配,适合查找特定后缀或命名规则的文件。
示例代码 :
import glob
folder_path = '/path/to/your/folder'
# 查找所有txt文件
txt_files = glob.glob(folder_path + "/*.txt")
for file in txt_files:
with open(file, 'r') as f:
content = f.read()
print(content)
三、使用pathlib
模块(推荐)
Python 3.4及以上版本,提供面向对象的文件路径操作,代码更简洁易读。
示例代码 :
from pathlib import Path
def find_files_with_extension(folder_path, extension):
return [str(file) for file in Path(folder_path).rglob(f'*{extension}')]
folder_path = '/path/to/your/folder'
txt_files = find_files_with_extension(folder_path, '.txt')
for file in txt_files:
with open(file, 'r') as f:
content = f.read()
print(content)
四、结合条件读取特定文件
在遍历过程中直接判断文件名或后缀,筛选出目标文件后读取内容。
示例代码 :
import os
def process_specific_files(folder_path, file_extension):
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith(file_extension):
file_path = os.path.join(root, file)
with open(file_path, 'r') as f:
content = f.read()
# 处理内容
print(content)
folder_path = '/path/to/your/folder'
process_specific_files(folder_path, '.txt')
总结 :根据需求选择合适的方法,os.walk()
适合通用遍历,glob
和pathlib
更简洁高效,结合条件判断可精准定位目标文件。