在Python中,遍历文件夹是一项常见的任务,它涉及到读取文件夹中的文件和子文件夹,并对每个文件或子文件夹执行特定的操作。遍历文件夹可以用于多种场景,例如文件搜索、备份、清理等。本文将详细介绍如何使用Python遍历文件夹。
os和glob模块在Python中,遍历文件夹主要依赖于os
和glob
模块。os
模块提供了丰富的文件和目录操作功能,而glob
模块则用于匹配文件和目录。
os模块
os
模块的listdir()
函数可以获取指定文件夹中的文件和子文件夹列表。示例代码如下:
import os
def traverse_dir(directory):
for item in os.listdir(directory):
print(item)
traverse_dir('your_directory')
glob模块
glob
模块的glob()
函数可以匹配指定文件夹中的文件和子文件夹,并返回匹配的文件和子文件夹列表。示例代码如下:
import glob
def traverse_dir(directory):
for item in glob.glob(os.path.join(directory, '*')):
print(item)
traverse_dir('your_directory')
遍历文件和子文件夹
在实际应用中,我们经常需要对文件夹中的文件和子文件夹分别进行处理。以下是一个示例,展示了如何遍历文件和子文件夹:
import os
def traverse_dir(directory):
for item in os.listdir(directory):
full_path = os.path.join(directory, item)
if os.path.isfile(full_path):
# 对文件进行处理
print(f'File: {full_path}')
elif os.path.isdir(full_path):
# 对子文件夹进行处理
print(f'Subdirectory: {full_path}')
traverse_dir('your_directory')
案例
假设我们需要遍历一个图片文件夹,将每个图片文件的文件名和文件大小打印出来。示例代码如下:
import os
def traverse_image_folder(directory):
for item in os.listdir(directory):
full_path = os.path.join(directory, item)
if os.path.isfile(full_path) and item.lower().endswith(('.png', '.jpg', '.jpeg')):
file_size = os.path.getsize(full_path)
print(f'File: {item}, Size: {file_size} bytes')
traverse_image_folder('your_image_directory')
结论
本文介绍了如何使用Python遍历文件夹,包括使用os
和glob
模块获取文件和子文件夹列表,以及如何遍历文件和子文件夹。在实际应用中,可以根据需要修改遍历逻辑,以满足特定需求。