首页 > 解决方案 > 导入的python文件,里面有相对路径

问题描述

我的 python 2.7 项目中的相对路径有问题。我有两个文件,我们称它们为script.py 和importedScript.py,它们有不同的目录,因为importedScript 在一个子文件夹中。importScript.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 文件中打开不同的文件。

标签: pythonimportrelative-pathsubdirectoryos.path

解决方案


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

def OpenCSV(file):
    here = os.path.dirname(os.path.abspath(file))
    ...etc

可以通过做来调用OpenCSV(__file__)


推荐阅读