问题陈述
Python 脚本在递归搜索子文件夹时遇到问题具有特定扩展名的文件。该脚本旨在创建找到的文件的列表,但脚本检索到的子文件夹位于列表中,而不是代表包含找到的文件的文件夹。
解决方案
要解决此问题,应使用所提供代码中的“root”变量表示的 dirpath,而不是 subFolder 变量。 dirpath 包含所定位文件所在目录的绝对路径。
代码片段
以下修改后的 Python 代码演示了 dirpath 的正确用法:
<code class="python">import os result = [os.path.join(dp, f) for dp, dn, filenames in os.walk(PATH) for f in filenames if os.path.splitext(f)[1] == '.txt']</code>
通过采用此修改,代码将有效地递归遍历子文件夹并创建具有所需扩展名的文件列表,每个文件路径包括其所属的文件夹。
其他选项
除了主要解决方案之外,还提供了使用 glob 模块或 Python 3.4 及更高版本的 Python 内置 pathlib 模块的替代方法,以提供更全面的选项。
结论
修改后的脚本可以准确识别并列出指定文件夹及其子文件夹中具有指定扩展名的文件,为 Python 中的递归文件搜索提供强大的解决方案。
以上是如何在Python中递归地从子文件夹中检索文件?的详细内容。更多信息请关注PHP中文网其他相关文章!