Beschouw de volgende Python code:
import os
print os.getcwd()
Ik gebruik os.getcwd()
om de directory locatie van het scriptbestand te krijgen's. Wanneer ik het script vanaf de opdrachtregel uitvoer, geeft het me het juiste pad, terwijl wanneer ik het script uitvoer vanuit een script dat wordt uitgevoerd door code in een Django-view, het /
afdrukt.
Hoe kan ik het pad naar het script krijgen vanuit een script dat wordt uitgevoerd door een Django-view?
UPDATE:
Het samenvatten van de antwoorden tot nu toe - os.getcwd()
en os.path.abspath()
geven beide de huidige werkdirectory die al dan niet de directory kan zijn waar het script zich bevindt. In mijn web host setup
geeft alleen de bestandsnaam zonder het pad.__file__
Is er geen manier in Python om (altijd) het pad te krijgen waarin het script zich bevindt?
Ik gebruik:
import os
import sys
def get_script_path():
return os.path.dirname(os.path.realpath(sys.argv[0]))
Zoals aiham in een commentaar opmerkt, kun je deze functie in een module definiëren en in verschillende scripts gebruiken.