Cómo referirse a rutas de acceso relativas de recursos cuando se trabaja con un repositorio de código en Python

Estamos trabajando con un repositorio de código que se implementa tanto en Windows como en Linux, a veces en directorios diferentes. ¿Cómo debe uno de los módulos dentro del proyecto referirse a uno de los recursos que no son Python en el proyecto (archivos CSV, etc.)?

Si hacemos algo como:

thefile=open('test.csv')

o:

thefile=open('../somedirectory/test.csv')

Solo funcionará cuando el script se ejecute desde un directorio específico o un subconjunto de directorios.

Lo que me gustaría hacer es algo como:

path=getBasePathOfProject()+'/somedirectory/test.csv'
thefile=open(path)

¿Es este el camino correcto? ¿Es posible?

Respuestas a la pregunta(7)

Su respuesta a la pregunta