Python os.listdir与os.walk实现获取路径详解

1. os.listdir()

os.listdir()是Python中用于获取指定目录下所有文件和文件夹的函数。它接受一个参数,即要获取路径的目录路径。

1.1 基本用法

基本用法很简单,只需将要获取路径的目录路径传入os.listdir()函数中即可。

import os

# 获取当前目录下所有文件和文件夹的名称

files = os.listdir('.')

print(files)

上面的代码中,我们使用os.listdir()函数获取了当前目录下所有文件和文件夹的名称,并打印出来。

1.2 获取指定类型的文件

有时我们只想获取目录下特定类型的文件,可以通过在os.listdir()函数中使用列表推导式对文件进行过滤。

import os

# 获取当前目录下所有的txt文件

txt_files = [file for file in os.listdir('.') if file.endswith('.txt')]

print(txt_files)

上面的代码中,我们使用列表推导式对当前目录下的文件进行过滤,只获取后缀名为.txt的文件。

2. os.walk()

os.walk()是Python中用于遍历指定目录及其子目录下所有文件和文件夹的函数。它接受一个参数,即要遍历的目录路径。

2.1 基本用法

基本用法很简单,只需将要遍历的目录路径传入os.walk()函数中即可。

import os

# 遍历当前目录及其子目录下所有文件和文件夹

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

print(root, dirs, files)

上面的代码中,我们使用os.walk()函数遍历了当前目录及其子目录下所有的文件和文件夹,并将每个目录的路径、子目录列表和文件列表打印出来。

2.2 获取指定类型的文件

与os.listdir()类似,我们也可以通过在os.walk()函数中使用列表推导式对文件进行过滤,以获取特定类型的文件。

import os

# 遍历当前目录及其子目录下所有的txt文件

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

txt_files = [file for file in files if file.endswith('.txt')]

print(txt_files)

上面的代码中,我们使用列表推导式对每个目录下的文件进行过滤,只获取后缀名为.txt的文件,并将其打印出来。

3. 总结

通过本文的介绍,我们了解了如何使用os.listdir()和os.walk()函数来获取路径,并可以灵活地筛选出特定类型的文件。这两个函数在文件处理、文件夹管理等场景中非常实用。

需要注意的是,对于较大的文件夹或目录树,使用os.walk()函数可能较耗时。此外,os.listdir()和os.walk()函数返回的文件名仅包含文件名本身,不包括路径信息。

后端开发标签