'Issue running python script in separate folder

I Have a directory structured as follows:

application
 ├── app
 │   └── folder
 │       └── file_1.py 
 │       └── Model_data
 │            └──data.csv
 └── app2
     └── some_folder
         └── file_2.py

I want to import a function from file_1 inside of file_2. I use:

from application.app.folder.file_1 import load_data

t = load_data()

the problem is that this returns an error. Within the function load_data I call pandas and import csv data from a sub-folder.

df = pd.read_csv('Model_data/data.csv')

this returns a "file doesn't exist error". how do I resolve this?

file_1 runs fine from within the directory.



Solution 1:[1]

You can try changing 'Model_data/data.csv' to its absolute path. example C:/application/app/folder/Model_data/data.csv

Solution 2:[2]

You can use a relative path from file_1.py:

from pathlib import Path

def load_data():
   file_1_path = Path(__file__)
   filename = file_1_path.parent / "Model_data" / "data.csv"
   df = pd.read_csv(filename)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 damaBeugXam
Solution 2 Runinho