我有脚本调用其他脚本文件,但我需要获得当前在进程中运行的文件的文件路径。
例如,假设我有三个文件。使用execfile:
Script_1.py调用script_2.py。 反过来,script_2.py调用script_3.py。
如何从script_3.py内的代码中获得script_3.py的文件名和路径,而不必将该信息作为script_2.py的参数传递?
(执行os.getcwd()返回初始脚本的文件路径,而不是当前文件的文件路径。)
我有脚本调用其他脚本文件,但我需要获得当前在进程中运行的文件的文件路径。
例如,假设我有三个文件。使用execfile:
Script_1.py调用script_2.py。 反过来,script_2.py调用script_3.py。
如何从script_3.py内的代码中获得script_3.py的文件名和路径,而不必将该信息作为script_2.py的参数传递?
(执行os.getcwd()返回初始脚本的文件路径,而不是当前文件的文件路径。)
当前回答
我有一个脚本,必须在windows环境下工作。 这段代码剪辑是什么我已经完成:
import os,sys
PROJECT_PATH = os.path.abspath(os.path.split(sys.argv[0])[0])
这是个很俗气的决定。但它不需要外部库,这是我的情况下最重要的事情。
其他回答
import sys
print sys.path[0]
这将打印当前执行脚本的路径
这应该可以工作:
import os,sys
filename=os.path.basename(os.path.realpath(sys.argv[0]))
dirname=os.path.dirname(os.path.realpath(sys.argv[0]))
试试这个,
import os
os.path.dirname(os.path.realpath(__file__))
__file__属性既适用于包含主要执行代码的文件,也适用于导入的模块。
见https://web.archive.org/web/20090918095828/http: / / pyref.infogami.com/__file__
__file__
正如其他人所说。你可能还想使用os.path.realpath来消除符号链接:
import os
os.path.realpath(__file__)