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

时间:2018-07-19 05:09:27

标签: python os.walk

我正在尝试为来自不同文件夹的具有相同名称和格式的多个文件创建路径列表。我尝试使用以下代码使用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'的完整位置。

我在这里做什么错了?

2 个答案:

答案 0 :(得分:1)

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

更改:

list_raster.append(files)

收件人:

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

答案 1 :(得分:0)

在您发布的示例代码中,您将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)