Quero obter o caminho do diretório atual no qual um arquivo .py é executado.
Por exemplo, um arquivo simples D:\test.py
com código:
import os
print os.getcwd()
print os.path.basename(__file__)
print os.path.abspath(__file__)
print os.path.dirname(__file__)
É estranho que a saída seja:
D:\
test.py
D:\test.py
EMPTY
Eu estou esperando os mesmos resultados do getcwd()
e path.dirname()
.
Dado os.path.abspath = os.path.dirname + os.path.basename
, por que
os.path.dirname(__file__)
retorna vazio?
os.path.dirname(filename) + os.path.basename(filename) == filename
porque o separador de diretórios está ausente. Nós preferimos:os.path.join(os.path.dirname(filename), os.path.basename(filename)) == filename
__file__
expande para o nome do arquivo atual, para que você possa usar uma cópia literal do código desta resposta.pode ser usado também assim:
fonte
fonte
os.path.realpath(__file__)
retornar o abspath do script atual; os.path.split (abspath) [0] retorna o diretório atualfonte
Você também pode usar este caminho
fonte