Python 3 - os.walk() Method


Description

The method walk() generates the file names in a directory tree by walking the tree either top-down or bottom-up.

Syntax

Following is the syntax for walk() method −

os.walk(top[, topdown = True[, onerror = None[, followlinks = False]]])

Parameters

  • top − Each directory rooted at directory, yields 3-tuples, i.e., (dirpath, dirnames, filenames)

  • topdown − If optional argument topdown is True or not specified, directories are scanned from top-down. If topdown is set to False, directories are scanned from bottom-up.

  • onerror − This can show error to continue with the walk, or raise the exception to abort the walk.

  • followlinks − This visits directories pointed to by symlinks, if set to true.

Return Value

This method does not return any value.

Example

The following example shows the usage of walk() method.

# !/usr/bin/python3
import os

os.chdir("d:\\tmp")
for root, dirs, files in os.walk(".", topdown = False):
   for name in files:
      print(os.path.join(root, name))
   for name in dirs:
      print(os.path.join(root, name))

Result

Let us compile and run the above program, this will scan all the directories and subdirectories bottom-to-up

.\python2\testdir\Readme_files\Lpt_Port_Config.gif
.\python2\testdir\Readme_files\ParallelPortViever.gif
.\python2\testdir\Readme_files\softcollection.css
.\python2\testdir\Readme_files\Thumbs.db
.\python2\testdir\Readme_files\Yellov_Ball.gif
.\python2\testdir\Readme.htm
.\python2\testdir\Readme_files
.\python2\testdir
.\Applicationdocs.docx
.\book.zip
.\foo.txt
.\java.ppt
.\python2

If you will change the value of topdown to True, then it will give you the following result −

.\Applicationdocs.docx
.\book.zip
.\foo.txt
.\java.ppt
.\python2
.\python2\testdir
.\python2\testdir\Readme.htm
.\python2\testdir\Readme_files
.\python2\testdir\Readme_files\Lpt_Port_Config.gif
.\python2\testdir\Readme_files\ParallelPortViever.gif
.\python2\testdir\Readme_files\softcollection.css
.\python2\testdir\Readme_files\Thumbs.db
.\python2\testdir\Readme_files\Yellov_Ball.gif
python_files_io.htm
Advertisements