Table of Contents

Python – Module os

< Previous Page

To import the module type:

import os

Main functions of os

Functions What they do
os.path.join() To use system folders separator / (UNIX/MACOS) or \\ (WIN) and create a path from different strings.
os.sep To know which separator is used on your system
os.path.getsize() Will return the size of a file (only works on files)
os.listdir() This function returns a list of all files and folders of a directory
os.getcwd() To get the current directory
os.path.chdir() You can change of level with ‘..’ or ‘\\’
os.path.makedirs() To create a directory
os.unlink(‘filename’) To delete permanently a single file (old method)
os.rmdir(‘directory’) To delete an empty folder // for more options see Move, copy and delete files module
os.path.dirname() It will return the directory name from a complete path
os.path.basename() It will return the file name only from a complete path If no filename is mentioned it will get the last folder name

os.path.basename(‘full_path’)

It will return the file name only (without directories if included in the string). If no filename is mentioned it will get the last folder name

Code Result
os.path.basename (‘C:\\Python\\Python38-32‘) ‘Python38-32
os.path.basename (‘C:\\Python\\Python38-32\\spam.txt’) ‘spam.txt’

os.path.abspath()

It will return a complete file path from a relative file path.
For example if your current path is ‘C:\\Python\\Python38-32’ and

Code Result
os.path.abspath(‘spam.txt’) ‘C:\\Python\\Python38-32\\spam.txt’
os.path.abspath(‘..\spam.txt’) ‘C:\\Python\\spam.txt’

os.path.relpath(‘Origin_File_Path’, ‘Actual_Path’)

It will return the relative command path to reach the file indicated in the first argument from the path mentioned in second place

Code Result
os.path.relpath(‘C:\\spam.txt’, ‘C:\\Python\\Python38-32‘) ‘..\\..\\spam.txt’
os.path.relpath(‘C:\\Python\\Python38-32\\spam.txt’, ‘C:\\Users’) ‘..\\Python\\Python38-32\\spam.txt’

os.walk(‘Path’)

This function will return a generator object. To read the values, you will need a for loop to read values.

The different values returned are: foldername, subfoldername, filename.

import os

for folderName, subfolders, filenames in os.walk('C:\\__PRODS__\\testdir'):
    print('The current folder is ' + folderName)

    for subfolder in subfolders:
        print('SUBFOLDER OF ' + folderName + ': ' + subfolder)

    for filename in filenames:
        print('FILE INSIDE THE FOLDER : ' + filename)

    print('')

The code above will give this result:

The current folder is C:\__PRODS__\testdir
SUBFOLDER OF C:\__PRODS__\testdir: dir001
SUBFOLDER OF C:\__PRODS__\testdir: dir002
SUBFOLDER OF C:\__PRODS__\testdir: dir003

The current folder is C:\__PRODS__\testdir\dir001
FILE INSIDE THE FOLDER : test001.txt
FILE INSIDE THE FOLDER : test002.txt
FILE INSIDE THE FOLDER : test003.txt

The current folder is C:\__PRODS__\testdir\dir002
FILE INSIDE THE FOLDER : test002.txt

The current folder is C:\__PRODS__\testdir\dir003
FILE INSIDE THE FOLDER : test003.txt

os.path: Useful tests (True / False)

Functions What they do
.exists() Check if path exists
.isabs() Check if path is absolute (True) or relative (False)
.isfile() Check if the path entered is a file
.isdir() Check if the path entered is a folder

Top KB Categories

Recent Articles