Py方法01|os.walk()
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
os.walk(top, topdown=True, onerror=None, followlinks=False)
Generate the file names in a directory tree by walking the tree either top-down or bottom-up. For each directory in the tree rooted at directory top (including top itself), it yields a 3-tuple (dirpath, dirnames, filenames)
.
top -- 是要遍历的目录的地址, 返回的是一个三元组(dirpath, dirnames, filenames)。
dirpath is a string, the path to the directory. dirnames is a list of the names of the subdirectories in dirpath (excluding '.'
and '..'
). filenames is a list of the names of the non-directory files in dirpath. Note that the names in the lists contain no path components. To get a full path (which begins with top) to a file or directory in dirpath, do os.path.join(dirpath, name)
.
dirpath:当前正在遍历的这个文件夹的本身的地址
dirnames:该文件夹中所有的目录的名字
dirnames:该文件夹中所有的文件名
需要注意的是,以上dirnames,dirnames不包括地址信息,如果想获得完整的路径信息,可以使用os.path.join(dirpath, name)
If optional argument topdown is True
or not specified, the triple for a directory is generated before the triples for any of its subdirectories (directories are generated top-down). If topdown is False
, the triple for a directory is generated after the triples for all of its subdirectories (directories are generated bottom-up). No matter the value of topdown, the list of subdirectories is retrieved before the tuples for the directory and its subdirectories are generated.
When topdown is True
, the caller can modify the dirnames list in-place (perhaps using del
or slice assignment), and walk()
will only recurse into the subdirectories whose names remain in dirnames; this can be used to prune the search, impose a specific order of visiting, or even to inform walk()
about directories the caller creates or renames before it resumes walk()
again. Modifying dirnames when topdown is False
has no effect on the behavior of the walk, because in bottom-up mode the directories in dirnames are generated before dirpath itself is generated.
By default, errors from the scandir()
call are ignored. If optional argument onerror is specified, it should be a function; it will be called with one argument, an OSError
instance. It can report the error to continue with the walk, or raise the exception to abort the walk. Note that the filename is available as the filename
attribute of the exception object.
By default, walk()
will not walk down into symbolic links that resolve to directories. Set followlinks to True
to visit directories pointed to by symlinks, on systems that support them.
参考资料:
os — Miscellaneous operating system interfaces
Python os.walk() 方法