2016-10-05 19 views
2

如何访问python函数所在的文件夹?自定义python函数所在的访问文件夹

例如,让我们说,我通过2阵列的数据具有A N。第一列是自变量,第二列是因变量。我需要用自变量的不同数组来插入这些数据,这些自变量的范围包含在原始独立变量中。此过程用于具有不同范围的自变量的多个不同代码,以便我不想将此数据文件复制到多个位置。我想编写一个单独的函数来实现这一点,在文件夹中包含函数本身的单个数据副本。

我的例子企图是:

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

路径'.'是reative到当前工作目录,这是从中proecss开始,而不是路径到当前的“PY”文件目录。为此使用变量'__file__'。 – zvone

回答

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+中,这是一个绝对路径,对于早期版本,您不能轻易知道它是绝对还是相对的 - 但您通常也不需要关心。

+0

把MY_DIR = os.path.dirname(__ FILE__)函数内部在一个单独的.py文件并导入它给了我一个错误说:IndentationError:取消缩进不匹配任何外部缩进级别... – astrapios

+0

没关系,它完美。不知何故,我的vim搞砸了这个文件。谢谢!! – astrapios

相关问题