导入的python文件内部具有相对路径

时间:2018-12-13 12:39:12

标签: python import relative-path subdirectory os.path

我的python 2.7项目中的相对路径有问题。我有两个文件,我们称它们为script.py和importedScript.py,它们具有不同的目录,因为importedScript在子文件夹中。 ImportedScript.py有一个名为openCSV()的方法,该方法通过

导入script.py。
from subfolder.importedScript import openCSV

这很好。方法openCSV(filename)内部包含以下代码:

script_path = os.path.dirname(os.path.abspath(__file__))
filepath = os.path.join(script_path, 'subfolder2/' + filename)
dataset = pd.read_csv(filepath) 

此代码从子文件夹导入.csv文件。如果我自己运行ImportedScript.py,这也可以正常工作。

现在的问题是,当我运行script.py时,importedScript.py中的相对路径生成错误。由于某些原因,系统尝试从“ subfolder2 /”而不是“ subfolder / subfolder2”加载importedScript.py。

有人知道如何解决此问题吗?

编辑:subfolder2中有不同的.csv文件,我想从不同的python文件中打开不同的文件。

1 个答案:

答案 0 :(得分:0)

您可以将__file__变量传递给调用的方法:

def OpenCSV(file):
    here = os.path.dirname(os.path.abspath(file))
    ...etc
可以通过执行OpenCSV(__file__)

来调用