0

我有一个小脚本遍历工作区并将 .asc 类型的相同文件名添加到字典中的列表中。但是,我想省略工作区中某些文件夹中的所有 .asc 文件(以蓝色突出显示)。如何忽略以蓝色突出显示的文件夹中的 .asc 文件,或者仅包含位于子块文件夹中的 .asc 文件?

在此处输入图像描述

import os, collections
from collections import defaultdict

workspace = r'C:\my\workspace'

# Get a list of all files in subfolders
rasters = defaultdict(list)
for root, dirs, files in os.walk(workspace):
    for file in files:
        if file.endswith(".asc"):
             rasters[file].append(os.path.join(root, file))

rasters = rasters.values()
4

1 回答 1

2
for current_dir, dirs, files in os.walk(workspace):
    if current_dir.endswith("IgnoreMe"):
        continue  #skip this folder

    for file in files:
        if file.endswith(".asc"):
             rasters[file].append(os.path.join(root, file))

更具体地为你

for current_dir, dirs, files in os.walk(workspace):
    if "_" not in os.path.split(current_dir)[-1]: 
        #filter out all ".asc" files
       files = filter(lambda fname:not fname.endswith("asc"),files)
    for file in files:
         #these dont have any more ".asc" files
于 2014-04-02T21:57:46.100 回答