当你调用 os.walk(folder_path)
函数时,它会遍历指定的文件夹 folder_path
及其所有子文件夹中的文件和文件夹。
递归遍历的逻辑如下:
folder_path
文件夹开始遍历。(root, dirs, files)
:
root
:当前正在遍历的文件夹路径(字符串)。dirs
:一个列表,包含当前文件夹中的子文件夹的名称(字符串列表)。files
:一个列表,包含当前文件夹中的文件的名称(字符串列表)。os.walk()
函数,继续遍历子文件夹中的文件和文件夹。这样就形成了一个递归的遍历过程,直到遍历完所有的子文件夹。你可以使用 for
循环来迭代这个生成器,如下所示:
import os
# 级联便利文件夹
def traverse_folder(folder_path):
for root, dirs, files in os.walk(folder_path):
print("Folder:", root)
print("Subfolders:", dirs)
print("Files:", files)
print()
if __name__ == '__main__':
# 指定要遍历的文件夹路径
folder_path = '/path/to/folder'
# 调用函数遍历文件夹
traverse_folder(folder_path)
案例:遍历指定文件夹及其子文件夹中的所有图片文件,并记录它们的地址信息
import os
#遍历文件夹下的所有图片文件,并记录图片地址信息
def find_images(folder_path, extensions=['.jpg', '.jpeg', '.png', '.gif']):
image_files = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if any(file.lower().endswith(ext) for ext in extensions):
image_path = os.path.join(root, file)
image_files.append(image_path)
return image_files
if __name__ == '__main__':
# 指定要遍历的文件夹路径
folder_path = '/path/to/folder'
# 调用函数查找图片文件
image_files = find_images(folder_path)
# 打印图片地址信息
for image_path in image_files:
print(image_path)