给定一个模块 mymodule.py
; 并且在其中
def foo():
X = # file path where foo was called from
print(X)
我应该如何完成评论中描述的操作?例如,如果我在test.py中执行以下操作:
from mymodule import foo
foo()
然后在终端中运行python3 test.py
,它应该会打印出test.py
的完整文件路径。
给定一个模块 mymodule.py
; 并且在其中
def foo():
X = # file path where foo was called from
print(X)
from mymodule import foo
foo()
然后在终端中运行python3 test.py
,它应该会打印出test.py
的完整文件路径。
sys.argv[0]
来获取主文件的名称,然后可以使用 os.path.realpath()
来获取其完整路径:import os
import sys
def foo():
X = os.path.realpath(sys.argv[0])
print(X)
演示:
kevin@Arch ~> python test.py
/home/kevin/test.py
os.path.realpath
来获取当前执行文件的完整路径:import os
def func():
full_path = os.path.realpath(__file__)
print(full_path)
if (__name__ == "__main__"):
func()
mymodule
导入到test.py
中,并且我想要的是test.py
的文件路径,而不是mymodule
的。 - 13steinj