![](/img/trans.png)
[英]List with all the files in directories &subdirectories with path (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
Archive
和Historie
文件夹”中的所有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.