python抓取文件夹的所有文件
在Python编程中,有时我们需要遍历一个文件夹及其所有子文件夹来获取其中的文件信息。这个需求在处理大量数据、文件管理和自动化任务时非常常见。本教程将介绍如何使用Python来实现这一功能。 我们需要导入必要的库。在这个例子中,只用到了内置的`os`库,它提供了与操作系统交互的各种功能,包括列出目录内容和判断路径是否为目录等。 ```python import os ``` 接着,定义了一些全局变量,如`folder`(目标文件夹)、`fileList`(当前层的文件列表)、`allFiles`(所有文件的完整路径列表)和`tree`(用于构建文件结构的列表)。同时,还设置了一个`level`变量来记录当前所处的文件夹层级。 ```python folder = "D:\\安装包" folder = folder.encode("gbk") fileList = [] allFiles = [] tree = [] level = 0 ``` 然后,检查输入的`folder`是否为空或不存在,如果为空则使用当前目录。接着,使用`os.listdir()`获取文件夹中的所有文件和子文件夹,并将它们转换成带路径的字符串存储在`fileList`中。同时,创建一个字典节点`node`并添加到`tree`中,表示当前文件夹层级。 ```python if folder is None or len(folder) == 0: folder = os.curdir if os.path.isdir(folder): childFile = os.listdir(folder) fileList = ["%s" % (folder+os.path.sep+f) for f in childFile] node = {'file':folder, 'level':level} tree.append(node) ``` 接下来,进入一个循环,直到`fileList`为空。在每次迭代中,将`fileList`的第一个元素(即当前处理的文件或子文件夹)添加到`allFiles`中。如果该元素是子文件夹,就递归地获取其内部的文件和子文件夹,并添加到`fileList`中。完成后,从`fileList`中移除已处理的元素。 ```python while fileList is not None and len(fileList) > 0: allFiles.append(""+fileList[0]) if os.path.isdir(fileList[0]): childFile = os.listdir(fileList[0]) if childFile is not None and len(childFile) > 0: fileList = fileList + ["%s" % (fileList[0]+os.path.sep+ft) for ft in childFile] else: pass else: pass fileList.pop(0) ``` 打印出所有文件的完整路径,以方便查看结果。如果在执行过程中出现异常,将捕获并打印异常信息。 ```python print "\n".join(["%s" % f for f in allFiles]) except Exception as x: print x ``` 总结起来,这段代码的核心在于使用`os.listdir()`和递归方法遍历文件夹及其子文件夹,将每个文件和子文件夹的路径存储在一个列表中。通过这样的方式,我们可以轻松地获取任何指定文件夹下的所有文件信息,无论文件夹结构有多复杂。这种技术在数据处理、文件备份、文件操作自动化等场景中都有广泛的应用。在实际使用时,可以根据需要对代码进行适当的修改,比如添加过滤条件只处理特定类型的文件,或者添加文件信息的详细统计等。
- 粉丝: 9
- 资源: 912
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 适用于 Android、Java 和 Kotlin Multiplatform 的现代 I,O 库 .zip
- 高通TWS蓝牙规格书,做HIFI级别的耳机用
- Qt读写Usb设备的数据
- 这个存储库适合初学者从 Scratch 开始学习 JavaScript.zip
- AUTOSAR 4.4.0版本Rte模块标准文档
- 25考研冲刺快速复习经验.pptx
- MATLAB使用教程-初步入门大全
- 该存储库旨在为 Web 上的语言提供新信息 .zip
- 考研冲刺的实用经验与技巧.pptx
- Nvidia GeForce GT 1030-GeForce Studio For Win10&Win11(Win10&Win11 GeForce GT 1030显卡驱动)