Lucian
Lucian

Reputation: 894

Python relative path to a specific file


I have a folder structure like:

Project/Main.py
Project/Module/Data.py
Project/Config/config.ini

Edits: Main.py uses Data.py. Only in Data.py I use config.ini. The application is run from Main.py but also from Data.py. The problem is that every time I run it from this separate scripts(one time the path is Config/config.ini, other time is ../Config/config.ini), I need to change this relative path, from Main.py is a path, from Data.py is another path.
How can I achieve to run from Main.py and Data.py and use the same piece of code to identify the config.ini? Thanks

Upvotes: 1

Views: 86

Answers (1)

Maciek
Maciek

Reputation: 3234

Put in your Main.py:

import os.path

BASE_DIR = os.path.dirname(__file__)
CONFIG_DIR = os.path.join(BASE_DIR, 'Config', 'config.ini')

And in your Data.py

import os.path

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
CONFIG_DIR = os.path.join(BASE_DIR, 'Config', 'config.ini')

Now you have CONFIG_DIR defined in both scripts, pointing to your config.

Upvotes: 1

Related Questions