ohho
ohho

Reputation: 51951

Python, add trailing slash to directory string, os independently

How can I add a trailing slash (/ for *nix, \ for win32) to a directory string, if the tailing slash is not already there? Thanks!

Upvotes: 151

Views: 103208

Answers (4)

Steven T. Snyder
Steven T. Snyder

Reputation: 6177

os.path.join(path, '') will add the trailing slash if it's not already there.

You can do os.path.join(path, '', '') or os.path.join(path_with_a_trailing_slash, '') and you will still only get one trailing slash.

Upvotes: 250

Tim Pietzcker
Tim Pietzcker

Reputation: 336428

Since you want to connect a directory and a filename, use

os.path.join(directory, filename)

If you want to get rid of .\..\..\blah\ paths, use

os.path.join(os.path.normpath(directory), filename)

Upvotes: 35

Bloeper
Bloeper

Reputation: 357

You could use something like this:

os.path.normcase(path)
    Normalize the case of a pathname. On Unix and Mac OS X, this returns the path unchanged; on case-insensitive filesystems, it converts the path to lowercase. On Windows, it also converts forward slashes to backward slashes.

Else you could look for something else on this page

Upvotes: -2

Max Shawabkeh
Max Shawabkeh

Reputation: 38643

You can do it manually by:

path = ...

import os
if not path.endswith(os.path.sep):
    path += os.path.sep

However, it is usually much cleaner to use os.path.join.

Upvotes: 19

Related Questions