Python Sys调用py-Fi的路径

2024-04-26 00:36:22 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行预测.py它单独查找并读取数据.csv文件。但运行预测.py文件来自自闭症患者另一个文件路径中的文件

我的文件

-sbin
  -master
    +asd.py
-scripts
  -bash
    -dataset
      +data.csv
    +predict.py

你知道吗自闭症患者你知道吗

import os
import sys

runPath = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(runPath, "../../scripts/bash"))

from predict import pred
pred().main()

你知道吗预测.py你知道吗

import pandas as pd
class pred:
    def main(self):
       data = pd.read_csv('dataset/data.csv', sep=';')

这个错误的原因是不是因为改变了操作路径?或者我因为另一个错误而没有得到它。你知道吗

错误:

FileNotFoundError: File b'dataset/data.csv' does not exist

Tags: 文件csvpathpyimport路径bash患者
3条回答

对上述评论的详细回答: 这是因为虽然您将scripts文件夹附加到sys路径以便从中导入内容预测.py,无论何时调用内部代码自闭症患者,它将从调用脚本的(自闭症患者)当前工作目录。你知道吗

这对您意味着相对路径数据集/数据集.csv的当前工作目录中不存在自闭症患者(sbin/master),因此代码将引发FileNotFound异常。你知道吗

解决这一问题的方法是给出预测.py数据集文件的绝对路径。你知道吗

为了以一种不是硬编码的方式来实现这一点,我会像你所做的那样获得你的运行路径,也就是获得你的运行路径的绝对路径预测.py文件中的变量和使用操作系统路径连接将其连接到数据集文件。这样,您就可以始终确保数据集文件将由中使用代码的任何调用脚本找到预测.py. 你知道吗

示例如下:

预测.py

import pandas as pd
import os
current_dir = os.path.dirname(os.path.realpath(__file__))
class pred:
    def main(self):
    data_fullpath = os.path.join(current_dir, 'dataset/dataset.csv')
    data = pd.read_csv(data_fullpath, sep=';')

我认为你应该使用绝对路径,而不是相对路径

你知道吗系统路径文件上说:

A list of strings that specifies the search path for modules

所以我不希望相对路径从你设定的路径开始自闭症患者 脚本正在尝试打开数据集/数据.csv从脚本启动的当前文件夹开始。你知道吗

在你的情况下,我会设法把这条路传递给第二个脚本。你知道吗

相关问题 更多 >