在Python中,读取文件夹下所有文件名的方法主要有以下两种,具体选择取决于需求:
一、使用 os.listdir()
适用于获取指定文件夹下所有文件和子文件夹的名称列表,返回值为字符串列表。
示例代码:
import os
# 指定文件夹路径
folder_path = r"C:\Users\username\Desktop\folder"
# 获取所有文件和文件夹名称
file_list = os.listdir(folder_path)
print(file_list)
说明:
-
该函数仅返回文件和文件夹名称,不区分类型。
-
若需筛选文件,可结合
os.path.isfile()
进行判断。
二、使用 os.walk()
适用于递归遍历文件夹及其所有子文件夹,返回生成器,每次迭代返回当前目录路径、子目录列表和文件列表。
示例代码:
import os
# 指定文件夹路径
root_dir = r"C:\Users\username\Desktop\folder"
# 递归遍历文件夹
for root, dirs, files in os.walk(root_dir):
for file in files:
print(os.path.join(root, file))
说明:
-
该函数支持深度遍历,适合处理包含多层子目录的文件夹。
-
返回的
files
列表仅包含当前目录下的文件,不包含子目录中的文件。
三、其他注意事项
-
路径处理 :建议使用原始字符串(前缀
r
)避免转义字符问题。 -
文件类型过滤 :可通过
os.path.splitext()
获取文件扩展名,结合字典分类文件。 -
性能优化 :对于大文件夹,
os.walk()
通常比os.listdir()
更高效。
以上方法可根据实际需求选择使用,若仅需当前目录文件,推荐 os.listdir()
;若需递归遍历,使用 os.walk()
。