python - 导入的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 文件中打开不同的文件。
解决方案
您可以将__file__
变量传递给调用方法:
def OpenCSV(file):
here = os.path.dirname(os.path.abspath(file))
...etc
可以通过做来调用OpenCSV(__file__)
推荐阅读
- reactjs - 如何在reactjs中将输入键映射到制表键
- sapui5 - sapui5 重新绑定来自 odata 的表中的数据
- html - 将文本限制为容器宽度并保持居中样式
- java - 错误:您的项目 buildScript 或 buildSrc 类路径中似乎有 guava-jdk5
- sql - postgres,当存在时返回列值
- javascript - Javascript - 从弹出窗口重定向父窗口
- apache-spark - :You`ve exceeded your rate limit allowance error in PySpark /
- angular - 根据内部找到的值重建数组
- android - 为什么即使设置了它的id,我也找不到navigationView?
- swift - Firebase - 制作您关注的人的帖子的主页(swift)