Python 3.5 的os.scandir(path)
函数返回轻量级 DirEntry 对象,这些对象对于有关文件的信息非常有帮助。但是,它仅适用于传递给它的直接路径。有没有办法将其包装在递归函数中,以便它访问给定路径下的所有子目录?
您可以使用递归扫描os.walk()
,或者如果你需要DirEntry
对象或更多控制,编写一个递归函数,例如scantree()
below:
try:
from os import scandir
except ImportError:
from scandir import scandir # use scandir PyPI module on Python < 3.5
def scantree(path):
"""Recursively yield DirEntry objects for given directory."""
for entry in scandir(path):
if entry.is_dir(follow_symlinks=False):
yield from scantree(entry.path) # see below for Python 2.x
else:
yield entry
if __name__ == '__main__':
import sys
for entry in scantree(sys.argv[1] if len(sys.argv) > 1 else '.'):
print(entry.path)
Notes:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)