Recently I needed to go through all the folders in a directory and create an operation for all the files inside them, I was able to generate the absolute path for the files using os.join but the application which I had to run inside each of those folders wanted me to make the each folder as the current directory. os.walk is a recursive call and will go through all the folders and hence the best way to make sure that the current directory of os.walk is the current directory for OS is shown in the below code.
from os import listdir from os.path import isfile, join import os import re top = os.getcwd() for (dirname, dirs, files) in os.walk(os.getcwd()): for filename in files: os.chdir(dirname) # Add all the operations for your current working folder here os.chdir(top) ''' Additional ways to get the paths from os.walk os.path.abspath(os.path.join(dirname, filename)) os.path.abspath(dirname) os.chdir(dirname) '''