【问题标题】:Imported python file with relative path inside导入的python文件,里面有相对路径
【发布时间】:2018-12-13 12:39:12
【问题描述】:

我的 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 文件中打开不同的文件。

【问题讨论】:

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


    【解决方案1】:

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

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

    可以通过OpenCSV(__file__)调用

    【讨论】:

    • openCSV 获取文件名作为参数,但我看不出将路径作为输入参数如何解决我的问题。因为给定的路径将是 script.py 文件的路径,然后连接路径又会出错。还是我想错了?我不想在 script.py 中生成路径,因为我也想在其他文件中使用下标。
    • 你试过了吗? file 不是路径,它是代表正在执行的当前脚本的变量
    猜你喜欢
    • 2015-01-07
    • 2018-10-11
    • 2013-07-12
    • 2023-04-03
    • 2022-07-19
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多