首页 > 解决方案 > Python列出子目录中的所有文件但排除一些目录

问题描述

我想列出txt目录结构中的所有文件,但排除一些特定文件夹。

例如我想获取所有txt文件

D:\_Server\<subfolders>\Temp_1\Config\或者

D:\_Server\<subfolders>\Temp_1\Config\Stat 但排除

D:\_Server\<subfolders>\Temp_1\Config\Historie\

D:\_Server\<subfolders>\Temp_1\Config\Archive\

要获取所有文件,我使用了以下代码:

glob.glob('D:\\_Server\\**\\Config\\**\\*.olc', recursive=True)

这将生成所有txt文件的列表Archive以及Historie文件夹中的所有文件。

GlobPython模块可以做到这一点吗?还是有更好的解决方案来存档?

标签: pythonpython-3.xglob

解决方案


你也可以这样做os

import os
extensions = ('.txt')                                    #extinctions want to search
exclude_directories = set(['exclude_directory_name'])    #directory (only names) want to exclude
for dname, dirs, files in os.walk('/root/path/to/directory'):  #this loop though directies recursively 
    dirs[:] = [d for d in dirs if d not in exclude_directories] # exclude directory if in exclude list 
    for fname in files:
        if(fname.lower().endswith(extensions)): #check for extension 
           fpath = os.path.join(dname, fname)   #this generate full directory path for file
           print fpath

推荐阅读