好吧…让我们浏览一下源代码:)
文件:http :
//docs.python.org/2/library/os.html#os.walk
def walk(top, topdown=True, onerror=None, followlinks=False): islink, join, isdir = path.islink, path.join, path.isdir try: # Note that listdir and error are globals in this module due # to earlier import-*. # Should be O(1) since it's probably just reading your filesystem journal names = listdir(top) except error, err: if onerror is not None: onerror(err) return dirs, nondirs = [], [] # O(n) where n = number of files in the directory for name in names: if isdir(join(top, name)): dirs.append(name) else: nondirs.append(name) if topdown: yield top, dirs, nondirs # Again O(n), where n = number of directories in the directory for name in dirs: new_path = join(top, name) if followlinks or not islink(new_path): # Generator so besides the recursive `walk()` call, no additional cost here. for x in walk(new_path, topdown, onerror, followlinks): yield x if not topdown: yield top, dirs, nondirs
因为它是一个生成器,所以这全都取决于您走树的距离,但是看起来给定路径中文件/目录的总数
O(n)在哪里
n。



