Como fazer referência a caminhos relativos de recursos ao trabalhar com um repositório de código

| | | | | | | | | | |

Estamos trabalhando com um repositório de código implantado no Windows e 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") 

Irá funcionar apenas 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) 

É possível?