繁体   English   中英

Python列出子目录中的所有文件,但排除某些目录

[英]Python List all Files in Subdirectories but exclude some Directories

我想在目录结构中列出所有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文件的列表,以及Historie ArchiveHistorie文件夹”中的所有txt文件。

Python Glob模块可以做到吗? 还是有更好的解决方案来存档此文件?

您可以只过滤结果列表,例如使用列表理解:

allResults = glob.glob('D:\\_Server\\**\\Config\\**\\*.olc', recursive=True)
filteredResults = [r for r in allResults if not "Archive" in r and not "Historie" in r]

您也可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM