zoukankan      html  css  js  c++  java
  • python:利用递归遍历文件夹所有文件(包括子文件夹里的文件)

    废话不说,先上代码:

     1 import os
     2 
     3 
     4 def show_files(path, all_files):
     5     # 首先遍历当前目录所有文件及文件夹
     6     file_list = os.listdir(path)
     7     # 准备循环判断每个元素是否是文件夹还是文件,是文件的话,把名称传入list,是文件夹的话,递归
     8     for file in file_list:
     9         # 利用os.path.join()方法取得路径全名,并存入cur_path变量,否则每次只能遍历一层目录
    10         cur_path = os.path.join(path, file)
    11         # 判断是否是文件夹
    12         if os.path.isdir(cur_path):
    13             show_files(cur_path, all_files)
    14         else:
    15             all_files.append(file)
    16 
    17     return all_files
    18 
    19 
    20 # 传入空的list接收文件名
    21 contents = show_files("e:\python", [])
    22 # 循环打印show_files函数返回的文件名列表
    23 for content in contents:
    24     print(content)

    刚开始写了半天,只能遍历当前目录,要不就是递归超过最大深度,最后才知道,还有一个os.path.join()方法,不调用这个方法的话,每次递归传进去的路径名称只有一个文件目录名,而程序执行的时候是以程序文件所在目录为参考的相对目录

  • 相关阅读:
    Linux 笔记
    查看 Linux 系统版本信息
    在网站中添加 https 百度分享
    Linux 中 Xampp 的 https 安全证书配置
    Windows 笔记
    Linux 笔记
    CentOS7 自定义登录前后欢迎信息
    构建器内部的多形性方法的行为
    编译dubbo项目方法
    《Thing in java》多态
  • 原文地址:https://www.cnblogs.com/cnapple/p/11792577.html
Copyright © 2011-2022 走看看