python迭代列出某文件夹下所有文件

# -*- coding: UTF-8 -*- 
# 输出一个文件夹下所有文件
import os
import re
def filterFileName(filename):
if re.search('.doc\w{0,1}',filename,re.I)!=None:
return filename

def getalldocfilename(path):
    docfilenames = []
    for dirpath, dirnames, filenames in os.walk(path):
        filenames = filter(filterFileName, filenames)
        filenames = map(lambda filename: os.path.join(dirpath, filename), filenames)
        docfilenames.extend(filenames)
        return docfilenames
def main():
print 'begin'
path="C:/Users/sun/Desktop"
files =getalldocfilename(path)
print files

if __name__=='__main__':
main()
### Python 获取指定目录下所有子文件夹的方法 为了获取指定路径下的所有文件夹列表,`os.walk()` 是一种高效且灵活的选择。此方法会遍历根目录及其所有的子目录,并返回三个值的元组:当前路径、文件夹名称列表以及文件名列表。 下面是一段用于获取并打印给定路径下所有子文件夹名字的代码: ```python import os def list_subdirectories(directory_path): """列出指定目录下的所有子文件夹""" subdirs = [] for root, dirs, files in os.walk(directory_path): for name in dirs: full_path = os.path.join(root, name) relative_path = os.path.relpath(full_path, directory_path) if relative_path != ".": subdirs.append(relative_path) return subdirs if __name__ == '__main__': target_directory = './example_folder' folders = list_subdirectories(target_directory) print(folders) ``` 这段程序定义了一个名为 `list_subdirectories` 的函数,该函数接收一个参数——目标文件夹的位置作为输入。通过调用 `os.walk()` 函数迭代访问每一个子文件夹,在每次循环中收集这些子文件夹的名字到列表 `subdirs` 中[^2]。 另外,如果只需要顶层的一级子文件夹而不关心更深级别的嵌套,则可以直接利用 `os.listdir()` 结合 `os.path.isdir()` 来简化操作: ```python import os target_directory = './example_folder' folders = [ entry.name for entry in os.scandir(target_directory) if entry.is_dir() ] print(folders) ``` 这里使用了 `os.scandir()` 方法代替传统的 `os.listdir()` ,因为前者性能更好一些,尤其是在处理大量条目的情况下。同时配合 `entry.is_dir()` 判断是否为文件夹来进行筛选[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值