python实现读取给定文件夹下文件目录与文件信息(包括子文件夹)

这篇博客介绍了如何使用Python的os模块来遍历指定文件夹及其子文件夹,详细讲解了获取每个文件的路径、名称、大小等信息的方法,为文件管理提供了便利。
摘要由CSDN通过智能技术生成
(本文代码是改写调整过的代码,原代码可参考 android小站,博客网站是http://hkllzh.iteye.com/blog/1517917 )
注:由于源代码在递归部分阐述稍欠清晰,文中所示为改写之后的递归代码,测试后与源代码功能相同
以下展示了一个功能是打印文件夹目录的python代码,注意程序的第20行,存在一处递归调用,现对代码做出分析如下:
需求分析:我们需要打印出一个给定文件夹下所有文件信息,如果存在子文件夹,则需要打印子文件夹的相关信息,如果子文件夹下还有子文件夹,同理我们需要这个子子文件夹的信息。换言之,给定文件目录下,所有层级的文件信息我们都要读取出来
算法分析:在这个问题中,我们无法知道给定的文件目录下到底有多少层级的子文件夹。在这个时候我们能够想到的应该是使用递归算法,当递归到最后一个层级的子文件夹时,没有其他子文件夹可以遍历,那么函数会逐级返回,从而我们获得了所需要的文件目录结构。
具体实现:
   
   
  1. #!/usr/bin/python
  2. # -*-coding: UTF-8 -*-
  3. import os
  4. allFileNum = 0
  5. def printPath(level, path):
  6. global allFileNum
  7. '''''
  8. 打印一个目录下的所有文件夹和文件
  9. '''
  10. # 所有文件
  11. fileList = []
  12. # 返回一个列表,其中包含在目录条目的名称(google翻译)
  13. files = os.listdir(path)
  14. for f in files:
  15. if(os.path.isdir(path + '/' + f)):
  16. if(f[0] != '.'): # 排除隐藏文件夹。因为隐藏文件夹过多
  17. print '-' * level, f
  18. # 打印目录下的所有文件夹和文件,目录级别+1
  19. printPath((level + 1), path + '/' + f) #recursion
  20. if(os.path.isfile(path + '/' + f)):
  21. # 添加文件
  22. fileList.append(f)
  23. for fl in fileList:
  24. # 打印文件
  25. print '-' * level, fl
  26. # 随便计算一下有多少个文件
  27. allFileNum = allFileNum + 1
  28. print "Please enter the directory path you want to list all file info: "
  29. yourPath = raw_input()
  30. if __name__ == '__main__':
  31. printPath(level = 1 , path = yourPath )
  32. print '总文件数 =', allFileNum


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值