获取具有特定扩展名并在其文件夹中包含特定单词的文件?

时间:2018-07-16 12:15:06

标签: python

我想编写一个代码,该代码在给定主文件夹的子文件夹中查找文件,该主文件夹具有特定扩展名,并且在其子文件夹名称中包含一些单词。我怎样才能做到这一点?

例如,获取其文件夹名称中带有单词“ dis”的文件,并获取扩展名为shp的文件。

这是我尝试过的:

仅覆盖名称相同的部分。

rootfolder= directory

shapelist = []
   for path, subdirs, files in os.walk(rootfolder):
       for name in files:
           if name.endswith('.shp'):
               shapelist.append(os.path.join(path, name))

树就像:

rootfolder\
    subfolders(including two that have the words diss)\
        files inside these

希望很清楚。

1 个答案:

答案 0 :(得分:1)

使用您的方法和os.path.split

shapelist = []
for path, subdirs, files in os.walk(rootfolder):
       # check if 'dis' is in the name of the subfolder
       if 'dis' in os.path.split(path)[-1]:
           for name in files:
               if name.endswith('.shp'):
                   shapelist.append(os.path.join(path, name))

但这是使用glob

的更好方法
from glob import glob
shapelist = glob(rootfolder + '/**/*dis*/*.shp', recursive=True)