Como se referir a caminhos relativos de recursos ao trabalhar com um repositório de código em Python

Estamos trabalhando com um repositório de código que é implantado tanto no Windows quanto no Linux - às vezes em diretórios diferentes. Como um dos módulos dentro do projeto deve se referir a um dos recursos não-Python no projeto (arquivos CSV, etc.)?

Se fizermos algo como:

thefile=open('test.csv')

ou:

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

Ele funcionará somente quando o script for executado a partir de um diretório específico ou de um subconjunto dos diretórios.

O que eu gostaria de fazer é algo como:

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

Este é o caminho certo? É possível?

questionAnswers(7)

yourAnswerToTheQuestion