python - 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
文件夹中的所有文件。
Glob
Python模块可以做到这一点吗?还是有更好的解决方案来存档?
解决方案
你也可以这样做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
推荐阅读
- spring - Hibernate 没有创建表之一
- aws-api-gateway - Api 网关(区域)+ Cloudfront 返回 HTTP/2 403
- c - 将向量的值转换为用于写入系统调用的 char 指针
- sass - Gulp:保存scss后未定义Sass任务
- java - 如何将类字段映射到另一个类?
- angular - 如何让 Angular 结构指令成为动态的?
- django - TypeError: 不支持的操作数类型 -: 'DateTimeField' 和 'DateTimeField'
- ocaml - “in”指令嵌套是如何工作的?
- eclipse - 在eclipse上设置环境变量
- python - 如何更改 PyQt5 菜单栏项中文本的颜色?