我正在尝试构建一个函数,该函数将熊猫dataframe
保存到csv,并保存调用它的python脚本的副本。
我希望该函数获取调用它的文件的位置。 所以我创建了以下文件:
functions.py:
def full_save():
filePath = os.path.abspath('')
currentFileDir = os.path.join(filePath, os.path.basename(__file__))
print(currentFileDir)
从另一个文件导入并调用该函数:
foo.py:
from functions import *
full_save()
我得到了functions.py
的目录,而不是foo.py
.
我想得到"/somelocation/foo.py"
,但我得到了"/modulelocation/functions.py"
.
您可以返回调用堆栈并访问调用方的全局变量。
functions.py:
import sys
def full_save():
namespace = sys._getframe(1).f_globals # Caller's globals.
print(f'namespace["__file__"]: {namespace["__file__"]!r}')