Python 如何在遍历树时忽略特定文件?
我想在使用Python 如何在遍历树时忽略特定文件?,python,python-2.7,filenames,os.path,Python,Python 2.7,Filenames,Os.path,我想在使用os.walk(path)在目录中创建子树时忽略特定文件 但由于某些原因,我不希望解析某些文件。e、 g.包含大量文档的.git文件。我该怎么做 file_to_ignore = '.git' for dirname, dirnames, filenames in os.walk(path): for filename in filenames: if filename == file_to_ignore: continue else:
os.walk(path)
在目录中创建子树时忽略特定文件
但由于某些原因,我不希望解析某些文件。e、 g.包含大量文档的.git
文件。我该怎么做
file_to_ignore = '.git'
for dirname, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename == file_to_ignore: continue
else:
#do somthing
使用
os
模块通过os.path.splitext()
方法获取文件扩展名
如果我们想添加更多的ignore extension init,请创建ignore extension list
例如
真实情况:
>>> import os
>>> filename = "abc.git"
>>> ignore = ['.git', ]
>>> os.path.splitext(filename)
('abc', '.git')
>>> os.path.splitext(filename)[1] in ignore
True
>>> os.path.splitext("abc.txt")[1] in ignore
False
错误条件:
>>> import os
>>> filename = "abc.git"
>>> ignore = ['.git', ]
>>> os.path.splitext(filename)
('abc', '.git')
>>> os.path.splitext(filename)[1] in ignore
True
>>> os.path.splitext("abc.txt")[1] in ignore
False
.git
是一个目录,而不是一个文件。要忽略.git目录中的文件吗?请使用dirnames[:]=[d for d in dirnames if d!='.git']
若要从考虑中删除该目录,请参阅副本以了解其工作原理。