Platform-independent file paths? Platform-independent file paths? python python

Platform-independent file paths?


You can use os.path and its functions, which take care of OS-specific paths:

>>> import os>>> os.path.join('app', 'subdir', 'dir', 'filename.foo')'app/subdir/dir/filename.foo'

On Windows, it should print out with backslashes.


import osos.path.join(os.path.curdir, 'file.name')

or

import osos.path.join(os.path.dirname(__file__), 'file.name')

depending upon whether it's a module (2) or a single script (1), and whether you're invoking it from the same directory (1), or from a different one (2).

Edit

Looking at the "attempt" you have in your question, I'd guess that you'd want (1).


In Python 3.4+ you can use pathlib:

from pathlib import Pathlibdir = Path(__file__).resolve().with_name('modules')

How it works: the __file__ attribute contains the pathname of the file from which the module was loaded. You use it to initialize a Path object , make the path absolute using the resolve() method and replace the final path component using the with_name() method.