I have scripts calling other script files but I need to get the filepath of the file that is currently running within the process.
For example, let's say I have three files. Using execfile:
script_1.py
calls script_2.py
. script_2.py
calls script_3.py
. How can I get the file name and path of script_3.py
, from code within script_3.py
, without having to pass that information as arguments from script_2.py
?
(Executing os.getcwd()
returns the original starting script's filepath not the current file's.)
p1.py:
execfile("p2.py")
p2.py:
import inspect, os
print (inspect.getfile(inspect.currentframe())) # script filename (usually with path)
print (os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) # script directory