【发布时间】:2010-09-18 18:07:36
【问题描述】:
如何限制os.walk 只返回我提供的目录中的文件?
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
【问题讨论】:
-
另一种情况,多种可能的方法以及随之而来的所有注意事项表明应该将此功能添加到 Python 标准库中。
-
files_with_full_path = [f.path for f in os.scandir(dir) if f.is_file()]。如果您只需要文件名,请使用f.name而不是f.path。这是最快的解决方案,比任何walk或listdir都快得多,请参阅stackoverflow.com/a/40347279/2441026。