首页 > 解决方案 > 使用 os.walk 的递归列表

问题描述

我正在尝试构建路径名列表。我到目前为止的代码是:

os.chdir(inputDir)

if Resursive is False:
    filePathList = [os.path.join(inputDir, f) for f in os.listdir(inputDir) if f.endswith('.tif')]

if Resursive is True:
    for root, dirs, files in os.walk(inputDir):
        for file in files:
            if file.endswith('.tif'):
                filePathList = (os.path.join(root, file))

显然,这会导致一个问题,在这种Recursive is True情况下,filePathList每次都会被覆盖。在其他语言中,我会做类似filePathList[i] = (os.path.join(root, file))但使用walk filefiles不是可以用作索引值的数字。

在这种情况下,最好的处理方式是Recursive is True什么?

标签: pythonos.walk

解决方案


os.chdir(inputDir)

if Resursive is False:
    filePathList = [os.path.join(inputDir, f) for f in os.listdir(inputDir) if f.endswith('.tif')]

if Resursive is True:
    filePathList = []
    for root, dirs, files in os.walk(inputDir):
        for file in files:
            if file.endswith('.tif'):
                filePathList.append(os.path.join(root, file))

推荐阅读