Python os.walk()函数控制路径遍历深度

import os

#选择路径
WorkDirectory = ['C:/Windows/System32/', 'C:/Windows/SysWow64/']
for i, o in enumerate(WorkDirectory):print('%s. %s' % (i, o))
Path = WorkDirectory[int(input(”输入路径索引“)]

#以获取一定深度的路径下的所有文件名信息为例
def Get_Path_Info(Path, Depth, Get_Files = [])
    for Abpath, Dirs, Files in os.walk(Path):
        if abs(Abpath.count(os.sep) - os.getcwd().count(os.sep)) >= Depth: Continue #如果超过深度,则忽略此次遍历
        Get_Files.extend(Files)
    return Get_Files

#以仅获取指定一级目录下的所有文件的目标为例
if __name__ == '__main__':
    ALL_Files = Get_Path_Info(Path = Path, Depth = 1)
    with open('0AAA File_Name_List.txt', 'wt', encoding='utf-8') as Info:    #写入文件名信息
        for i, o in enumerate(ALL_Files): 
            content = ('%s. %s' % (i + 1, o))
            Info.writelines(content+'\n')    #写入数字排序并引入换行
            print(content)
    
"""
abs 返回遍历深度绝对值
WorkDirectory 目录列表,以便选择
Path 路径
Depth 遍历深度
enumerate 索引化列表
"""

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python中,可以使用os.walk函数遍历目录结构。os.walk函数会递归地遍历目录结构,包括所有的子目录和文件。如果需要控制遍历深度,可以使用os.walk函数的depth参数来限制遍历深度。 depth参数表示遍历深度限制。如果depth参数为None(默认值),则os.walk函数遍历整个目录结构。如果depth参数为正整数,则os.walk函数将在遍历到指定深度后停止遍历子目录。例如,如果depth参数为1,则os.walk函数将只遍历当前目录,而不会递归遍历子目录。如果depth参数为0,则os.walk函数将不会遍历任何目录。 以下是一个示例代码,演示如何使用os.walk函数的depth参数来控制遍历深度: ``` import os def walk_dir(root_dir, depth=None): for root, dirs, files in os.walk(root_dir): if depth is not None and root.count(os.sep) - root_dir.count(os.sep) >= depth: # 当前目录深度超过指定深度,不再继续递归 continue # 处理当前目录下的文件 for file in files: file_path = os.path.join(root, file) print(file_path) # 处理当前目录下的子目录 for dir in dirs: dir_path = os.path.join(root, dir) print(dir_path) # 递归遍历子目录 walk_dir(dir_path, depth) ``` 在上述示例代码中,`depth`参数用于限制遍历深度。`root_dir`参数表示要遍历的根目录。在`for root, dirs, files in os.walk(root_dir):`这一行代码中,`os.walk`函数开始遍历目录结构。`root`表示当前目录的路径,`dirs`表示当前目录下的子目录列表,`files`表示当前目录下的文件列表。如果当前目录深度超过指定深度,则使用`continue`语句跳过当前目录,不再继续递归遍历。否则,会分别遍历当前目录下的文件和子目录,并递归遍历子目录(如果深度未超过指定深度)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值