本文介绍了os.walk,无需深入研究以下目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何限制os.walk
仅返回我提供的目录中的文件?
How do I limit os.walk
to only return files in the directory I provide it?
def _dir_list(self, dir_name, whitelist):
outputList = []
for root, dirs, files in os.walk(dir_name):
for f in files:
if os.path.splitext(f)[1] in whitelist:
outputList.append(os.path.join(root, f))
else:
self._email_to_("ignore")
return outputList
推荐答案
使用walklevel
函数.
import os
def walklevel(some_dir, level=1):
some_dir = some_dir.rstrip(os.path.sep)
assert os.path.isdir(some_dir)
num_sep = some_dir.count(os.path.sep)
for root, dirs, files in os.walk(some_dir):
yield root, dirs, files
num_sep_this = root.count(os.path.sep)
if num_sep + level <= num_sep_this:
del dirs[:]
它的作用与os.walk
相似,但是您可以向其传递一个level
参数,该参数指示递归进行的深度.
It works just like os.walk
, but you can pass it a level
parameter that indicates how deep the recursion will go.
这篇关于os.walk,无需深入研究以下目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!