Python 文件路径操作指南:遍历、过滤与文件管理
在 Python 编程过程中,我们经常需要处理文件系统相关的任务。例如获取某一个目录下的所有文件、筛选特定后缀名的文件、获取文件所在的文件夹路径、替换文件名、删除文件或移动文件等。本文系统总结了这些方法,涵盖 os 模块和现代 pathlib 库的使用,并包含错误处理与跨平台兼容性建议。
1. 获取文件夹下的所有文件路径
1.1 使用 os.listdir 获取直接子项
os.listdir() 是最基础的方法,可以获取指定文件夹下的所有文件和子文件夹名称(不包含完整路径)。
import os
dir_path = r'C:\Users\User\Desktop\周汇报'
file_ls = os.listdir(dir_path) # 获取所有文件及文件夹名称
print(file_ls)
运行结果会返回一个字符串列表,其中既包含文件名,也包含子文件夹名。
若要获取完整路径,可结合 os.path.join() 使用:
file_ls = [os.path.join(dir_path, file) for file in file_ls]
print(file_ls)
注意:此方法仅能获取当前层级的内容,无法递归进入子文件夹。
1.2 使用 os.walk 递归遍历
如果需要获取根目录下及其所有子文件夹中的文件,推荐使用 os.walk()。它返回三个参数:根目录 (root)、该目录下的子文件夹列表 (dirs)、该目录下的文件列表 (files)。
path = r'C:\Users\User\Desktop\周汇报'
for root, dirs, files in os.walk(path):
print(f"当前目录:{root}")
print(f"子文件夹:{dirs}")
print(f"文件:{files}")
os.walk 会自动向下遍历。若需收集所有文件路径:
path = r'C:\Users\User\Desktop\周汇报'
all_files = []
for root, dirs, files in os.walk(path):
for file in files:
full_path = os.path.join(root, file)
all_files.append(full_path)
()


