如何访问python函数所在的文件夹?
例如,假设我有一个N乘2的数据数组。第一列是自变量,第二列是因变量。我需要使用不同的自变量数组来插入这些数据,该自变量的范围包含在原始自变量中。此过程用于具有不同变量范围的多个不同代码,因此我不希望将此数据文件复制到多个位置。我想编写一个实现此功能的单个函数,其中包含函数本身的文件夹中的单个数据副本。
我的示例尝试是:
import numpy as np
from scipy.interpolate import splev, splrep
def function(some_array):
filepath = './file_path_in_the_function_folder.txt'
some_data = np.loadtxt(filepath)
interpolated_data = splev(some_array, splrep(some_data[:,0], some_data[:,1]))
return interpolated_data
然而,' ./'无法识别函数的位置,而是指向导入函数的脚本的当前工作目录。我该如何规避这个问题?
答案 0 :(得分:1)
像这样:
import os
my_dir = os.path.dirname(__file__)
fname = 'file_path_in_the_function_folder.txt'
filepath = os.path.join(my_dir, fname)
如data model中所述,您可以使用__file__
名称来获取当前模块的路径。在Python 3.4+中,它是一个绝对的路径,对于早期版本,你不能轻易知道它是绝对的还是相对的 - 但你通常也不需要关心。