Python遍历特定文件夹下的所有文件名

该文章介绍了如何在Python中使用os模块的walk函数遍历文件夹,包括获取文件名、文件夹名和完整文件路径的方法。示例代码展示了两种不同的实现方式,分别输出文件和文件夹的信息。

#方法一
import os
filePath = ‘D:\调研’
for i,j,k in os.walk(filePath):
# print(k)#直接输出文件名
#一个文件名一行,输出
for s in k:
print(s)
#方法二
import os
import os.path
rootdir = “D:\调研” # 指明被遍历的文件夹

for parent,dirnames,filenames in os.walk(rootdir): #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
for dirname in dirnames: #输出文件夹信息
print(“parent is:” + parent)
print(“dirname is” + dirname)
for filename in filenames: #输出文件信息
print(“parent is:” + parent)
print(“filename is:” + filename)
print(“the full name of the file is:” + os.path.join(parent,filename) )#输出文件路径信息

<think>我们被要求生成一个Python代码,用于遍历当前目录及其子目录中的所有文件,并获取文件列表。根据引用[2]中的示例,我们可以使用os.walk()函数来实现这个功能。os.walk()会遍历目录树,每次迭代返回一个三元组(当前目录路径,当前目录下的子目录列表,当前目录下的文件列表)。我们只需要收集所有文件的完整路径即可。步骤:1.导入os模块。2.使用os.walk('.')来遍历当前目录('.'表示当前目录)。3.对于每个三元组(root,dirs,files),root是当前目录的路径,files是当前目录下的文件名列表。4.将文件名与root组合成完整路径(使用os.path.join(root,file)),并添加到结果列表中。注意:我们不需要子目录,所以可以忽略dirs。代码示例:我们将定义一个函数,它返回当前目录及其子目录中所有文件的完整路径列表。另外,根据用户要求,我们还需要生成相关问题。但是注意:用户的问题是关于遍历当前文件夹下的所有文件,而引用[2]中给出了遍历指定后缀文件的示例,我们可以稍作修改,去掉后缀过滤。因此,我们可以这样写:</think>以下是使用Python遍历当前目录及其子目录获取所有文件列表的解决方案: ### 解决方案 ```python import os def get_all_files(directory='.'): """获取目录及其子目录下所有文件的完整路径列表""" file_list = [] for root, dirs, files in os.walk(directory): for file in files: # 拼接文件完整路径 full_path = os.path.join(root, file) file_list.append(full_path) return file_list # 使用示例 if __name__ == "__main__": current_dir = os.getcwd() # 获取当前工作目录 all_files = get_all_files(current_dir) # 打印结果(前10个示例) print(f"共找到 {len(all_files)} 个文件:") for i, file_path in enumerate(all_files[:10]): print(f"{i+1}. {file_path}") if len(all_files) > 10: print(f"...及其他 {len(all_files)-10} 个文件") ``` ### 关键点说明 1. **`os.walk()`函数**: - 递归遍历目录树,返回三元组 `(当前目录路径, 子目录列表, 文件列表)` - 是处理目录遍历的最高效方法[^3] 2. **路径拼接**: - `os.path.join(root, file)` 自动处理不同操作系统的路径分隔符问题 - 生成文件的绝对路径或相对路径(取决于输入的起始目录) 3. **返回值**: - 返回包含所有文件完整路径的列表 - 默认从当前目录开始遍历(参数 `directory='.'`) ### 使用示例 ```python # 获取当前目录下所有文件 files = get_all_files() # 获取指定目录下所有文件 files = get_all_files("/path/to/your/directory") # 筛选特定类型文件(示例:获取所有.py文件) py_files = [f for f in get_all_files() if f.endswith('.py')] ``` ### 性能说明 - 时间复杂度:$O(n)$(n为文件总数) - 空间复杂度:$O(n)$(需要存储所有文件路径) - 适合处理数千级别的文件数量,超大规模目录建议使用生成器版本[^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值