python 中 os.walk() 函数详解

1. os.walk() 函数概述

os.walk() 是一个非常实用的 Python 函数,用于遍历指定目录及其子目录下的所有文件和文件夹。它返回一个生成器对象,该生成器会依次生成每个文件夹下的路径、文件夹列表以及文件列表。这个函数的灵活性和易用性使得它成为处理文件系统中大量文件的首选方法。

2. os.walk() 函数的语法

import os

for root, dirs, files in os.walk(path):

# root 表示当前目录

# dirs 表示当前目录下的文件夹列表

# files 表示当前目录下的文件列表

# 对当前目录下的文件夹进行处理

for dir in dirs:

# 处理文件夹的逻辑

# 对当前目录下的文件进行处理

for file in files:

# 处理文件的逻辑

对于给定的路径 path,os.walk() 会遍历该路径下的所有子目录和文件,并将它们分别读取到 root、dirs 和 files 变量中。root 是当前目录的路径,dirs 是当前目录下的文件夹列表,files 是当前目录下的文件列表。

3. os.walk() 函数的使用示例

3.1 遍历文件夹并打印路径

import os

def print_paths(path):

for root, dirs, files in os.walk(path):

print(root)

print_paths("my_folder")

上述代码会从 "my_folder" 文件夹开始遍历,并将每个文件夹的路径打印出来。

3.2 遍历文件夹并打印文件列表

import os

def print_files(path):

for root, dirs, files in os.walk(path):

for file in files:

print(file)

print_files("my_folder")

上述代码会从 "my_folder" 文件夹开始遍历,并将每个文件夹下的文件列表打印出来。

3.3 遍历文件夹并修改文件名

import os

def rename_files(path):

for root, dirs, files in os.walk(path):

for file in files:

old_name = os.path.join(root, file)

new_name = os.path.join(root, file.replace(".txt", ".doc"))

os.rename(old_name, new_name)

rename_files("my_folder")

上述代码会遍历 "my_folder" 文件夹及其子文件夹,并将所有的 ".txt" 文件修改为 ".doc" 文件。

4. os.walk() 函数的注意事项

在使用 os.walk() 函数时,需要注意以下几点:

遍历的路径必须是一个存在的文件夹路径。

如果遍历的路径中有符号链接,os.walk() 函数默认会跟随符号链接。

遍历的路径中不能包含文件,否则会触发 NotADirectoryError 异常。

整理一下,os.walk() 函数是一个用于遍历指定目录及其子目录下的所有文件和文件夹的强大工具。它能够帮助我们快速处理大量的文件,并且灵活易用。我们可以通过 os.walk() 函数的返回值来获取文件夹路径、文件夹列表和文件列表,然后根据自己的需求进行相应的处理操作。

后端开发标签