Python 文件夹遍历
在编程过程中,经常会遇到需要遍历文件夹以及其中的文件的情况。Python 提供了多种方式来实现文件夹的遍历,本文将介绍如何使用 Python 来遍历文件夹,以及如何处理文件夹中的文件。
使用 os 模块来遍历文件夹
os 模块是 Python 的内置模块,提供了与操作系统交互的功能。我们可以使用 os 模块来实现文件夹的遍历。
import os
def traverse_folder(folder_path):
for root, dirs, files in os.walk(folder_path):
print(f"当前文件夹路径:{root}")
print("包含的子文件夹:", dirs)
print("包含的文件:", files)
print("---")
folder_path = "C:/Users/Username/Documents"
traverse_folder(folder_path)
运行以上代码,将会输出指定文件夹路径下的所有子文件夹及文件。os.walk()
方法会返回一个三元组 (root, dirs, files)
,其中 root
是当前文件夹的路径,dirs
是当前文件夹下所有子文件夹的名称列表,files
是当前文件夹下所有文件的名称列表。
使用 glob 模块来遍历文件夹
glob 模块是 Python 的内置模块,用于匹配文件路径。我们可以结合 glob 模块来实现文件夹的遍历。
import glob
def traverse_folder(folder_path):
files = glob.glob(folder_path + '/*')
for file in files:
if os.path.isdir(file):
print(f"当前文件夹路径:{file}")
print("包含的文件:", os.listdir(file))
print("---")
folder_path = "C:/Users/Username/Documents"
traverse_folder(folder_path)
运行以上代码,同样可以输出指定文件夹路径下的所有子文件夹及文件。glob.glob()
方法可以返回一个包含指定路径下所有文件的列表,我们可以通过判断每个路径是文件夹还是文件来实现文件夹的遍历。
使用 pathlib 模块来遍历文件夹
pathlib 模块是 Python 3.4 引入的一个模块,用于处理文件系统路径。我们可以使用 pathlib 模块来实现文件夹的遍历。
from pathlib import Path
def traverse_folder(folder_path):
for file in Path(folder_path).iterdir():
if file.is_dir():
print(f"当前文件夹路径:{file}")
print("包含的文件:", [f.name for f in file.iterdir()])
print("---")
folder_path = "C:/Users/Username/Documents"
traverse_folder(folder_path)
以上代码同样可以实现文件夹的遍历,但使用了 pathlib 的方式。Path(folder_path).iterdir()
可以返回一个包含指定路径下所有文件的迭代器,通过判断每个文件是文件夹还是文件,我们可以实现文件夹的遍历。
处理文件夹中的文件
在遍历文件夹的过程中,我们可能会需要对文件夹中的文件进行处理。以下是一个简单的示例,展示如何统计文件夹中所有文件的大小。
def calculate_folder_size(folder_path):
total_size = 0
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
total_size += os.path.getsize(file_path)
return total_size
folder_path = "C:/Users/Username/Documents"
total_size = calculate_folder_size(folder_path)
print(f"文件夹 {folder_path} 总共占用空间:{total_size} bytes")
以上代码会递归地计算指定文件夹中所有文件的大小,并输出总共占用的空间大小。
总结
本文介绍了如何使用 Python 来遍历文件夹及处理文件夹中的文件,同时给出了使用 os、glob 和 pathlib 模块的示例代码。在实际开发中,根据需求可以选择合适的方法来实现文件夹的遍历和文件处理。