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 able 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:
homedir/codes
: ./run.sh
-> os.getcwd()
returns homedir/codes
homedir
: ./codes/run.sh
-> os.getcwd()
returns homedir
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]
您可以获得绝对合格的路径:
os.path.join(os.path.abspath(os.curdir))
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.