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

2024-09-28 20:41:52 发布

您现在位置: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

希望这是清楚的。你知道吗


Tags: 文件path代码namein文件夹名称for
1条回答
网友
1楼 · 发布于 2024-09-28 20:41:52

使用你的方法和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)

相关问题 更多 >