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()函数返回的文件名仅包含文件名本身,不包括路径信息。