logo

Python Os.walk() Method


Show

Description

Python 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

  • path − This is the path of the file.
  • times − This is the file access and modified time. If times is none, then the file access and modified times are set to the current time. The parameter times consists of row in the form of (atime, mtime) i.e (accesstime, modifiedtime).
  • 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 returns value.

Example

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

# !/usr/bin/python

import os
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))

import os, sys # Showing stat information of file stinfo = os.stat('a2.py') print stinfo # Using os.stat to recieve atime and mtime of file print "access time of a2.py: %s" %stinfo.st_atime print "modified time of a2.py: %s" %stinfo.st_mtime # Modifying atime and mtime os.utime("a2.py",(1330712280, 1330712292)) print "done!!"

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

./tmp/test.py
./.bash_logout
./amrood.tar.gz
./.emacs
./httpd.conf
./www.tar.gz
./mysql.tar.gz
./test.py
./.bashrc
./.bash_history
./.bash_profile
./tmp

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

./.bash_logout
./amrood.tar.gz
./.emacs
./httpd.conf
./www.tar.gz
./mysql.tar.gz
./test.py
./.bashrc
./.bash_history
./.bash_profile
./tmp
./tmp/test.py

Here at Intellinuts, we have created a complete Python tutorial for Beginners to get started in Python.