Lets say i have a python script at homedir/codes/py/run.py
I also have a bash script at homedir/codes/run.sh
This bash script runs run.py by python py/run.py.
The thing is that i need to be ab开发者_StackOverflowle to find out, in run.py, the path to the calling script run.sh. If run.sh is run from its own directory, i can just use os.getcwd(). But run.sh can in principle be run from anywhere, and then os.getcwd() will return the path to where run.sh is run FROM, and not the actual location of run.sh.
ex:
- At
homedir/codes:./run.sh->os.getcwd()returnshomedir/codes - At
homedir:./codes/run.sh->os.getcwd()returnshomedir
But i want homedir/codes no matter how run.sh is called. Is this possible?
To get the absolute path of the current script in bash, do:
SCRIPT=$(readlink -f "$0")
Now, pass that variable as the last argument to the python script. You can get the argument from python as:
sys.argv[-1]
you can get the absolute qualified path with:
os.path.join(os.path.abspath(os.curdir))
加载中,请稍侯......
精彩评论