Python 3
Para o diretório do script que está sendo executado:
import pathlib
pathlib.Path(__file__).parent.absolute()
Para o diretório de trabalho atual:
import pathlib
pathlib.Path().absolute()
Python 2 e 3
Para o diretório do script que está sendo executado:
import os
os.path.dirname(os.path.abspath(__file__))
Se você quer dizer o diretório de trabalho atual:
import os
os.path.abspath(os.getcwd())
Observe que antes e depois file
são dois sublinhados, não apenas um.
Observe também que se você estiver executando interativamente ou tiver carregado código de algo que não seja um arquivo (por exemplo: um banco de dados ou recurso on-line), __file__
pode não ser definido, pois não existe a noção de "arquivo atual". A resposta acima pressupõe o cenário mais comum de execução de um script python que está em um arquivo.
Referências
- pathlib na documentação do python.
- os.path 2.7 , os.path 3.8
- os.getcwd 2.7 , os.getcwd 3.8
- o que a variável __file__ significa / faz?