首页 > 解决方案 > 导航到目录树并获取每个文件的路径

问题描述

我正在使用以下命令浏览目录:

  for dirName, subdirList, fileList in os.walk(base_dir):
        for fname in fileList:
            file_path = os.path.join(dirName, *subdirList, fname)

file_path是不正确的,因为它添加了所有子目录,而我想要的是获取文件的完整路径。

标签: pythonpython-3.x

解决方案


os.walk一开始有点难以掌握。在:

for dirName, subdirList, fileList in os.walk(base_dir):

dirName 遵循当前subdirListfileList。在每次迭代中,三元组都会更新为每个dirName.

所以你不能混合目录列表和文件列表。做就是了

file_path = os.path.join(dirName, fname)

作为旁注,如果您不需要目录,则可以“静音”目录列表:

for dirName, _, fileList in os.walk(base_dir):

推荐阅读