How/where to use os.path.sep?

18,223

Where os.path.sep is usefull?

I suspect that it exists mainly because a variable like this is required in the module anyway (to avoid hardcoding), and if it's there, it might as well be documented. Its documentation says that it is "occasionally useful".

Why it truncates the path?

From the docs for os.path.join():

If a component is an absolute path, all previous components are thrown away and joining continues from the absolute path component.

and / is an absolute path on *nix systems.

Share:
18,223
Gaurav Vichare
Author by

Gaurav Vichare

Full stack Python Developer, Software engineer

Updated on June 06, 2022

Comments

  • Gaurav Vichare
    Gaurav Vichare almost 2 years

    os.path.sep is the character used by the operating system to separate pathname components.

    But when os.path.sep is used in os.path.join(), why does it truncate the path?

    Example:

    Instead of 'home/python', os.path.join returns '/python':

    >>> import os
    >>> os.path.join('home', os.path.sep, 'python')
    '/python'
    

    I know that os.path.join() inserts the directory separator implicitly.

    Where is os.path.sep useful? Why does it truncate the path?