为不同文件夹中具有相同名称的文件创建位置列表

Creating a list of locations for files with the same name in different folders

我正在尝试为来自不同文件夹的具有相同名称和格式的多个文件创建路径列表。我尝试使用 os.walk 和以下代码执行此操作:

import os

list_raster = []

for (path, dirs, files) in os.walk(r"C:\Users\Douglas\Rasters\Testing folder"):
    for file in files:
        if "woody02.tif" in file:
            list_raster.append(files)
            print (list_raster)

然而,这只给了我两件事

  1. 文件名
  2. 每个文件夹中的所有文件名

我只需要每个文件夹中指定 'woody02.txt' 的完整位置。

我做错了什么?

完整路径名是 os.walk 返回的列表中元组的第一项,因此它已经分配给您的 path 变量。

变化:

list_raster.append(files)

至:

list_raster.append(os.path.join(path, file))

在您发布的示例代码中,您将 files 附加到您的列表,而不仅仅是当前文件,为了获得当前文件的完整路径和文件名,您需要更改您的代码像这样:

import os

list_raster = []

for (path, dirs, files) in os.walk(r"C:\Users\Douglas\Rasters\Testing folder"):
    for file in files:
        if "woody02.tif" in file:
            # path will hold the current directory path where os.walk
            # is currently looking and file would be the matching
            # woody02.tif
            list_raster.append(os.path.join(path, file))
# wait until all files are found before printing the list
print(list_raster)