使用 pandas 打开 csv 文件,其中相对路径来自另一个路径中的另一个主文件

Opening a csv file with pandas with relative path from another main file in another path

我的问题与link中的问题类似,但略有不同

项目结构是

project_folder
--> main.py
--> scripts_folder
    --> script.py
--> data_folder
    --> data.csv

main.py 看起来像这样

from scripts_folder.script import a

a()

script.py 看起来像这样

import pandas as pd

df = pd.read_csv('../data_folder/data.csv')

# do some things with df


def a():
    print('something')

我是运行main.py,调用script.py,需要从data.csv导入数据。 我尝试了上面问题中给出的方法。即我尝试在 scripty.py pd.reac_csv('../data_folder/data.csv') 中使用这行代码进行导入,但它不起作用。

它给我错误

    handle = open(
FileNotFoundError: [Errno 2] No such file or directory: '../data_folder/data.csv'

[编辑]

我尝试将 data.csv 移动到 scripts_folder 中,如

project_folder
--> main.py
--> scripts_folder
    --> script.py
    --> data.csv
--> data_folder (empty)

我将其更改为 df = pd.read_csv('data.csv') 但我仍然遇到相同的错误

    handle = open(
FileNotFoundError: [Errno 2] No such file or directory: 'data.csv'

有人可以帮忙吗?谢谢

 handle = open(
FileNotFoundError: [Errno 2] No such file or directory: '../data_folder/data.csv'

这表明它应该在 scripts_folder 内工作。 ../data_folder表示获取相对于当前的目录,并在此目录中找到data_folder

您可以使用 os.path.abspathos.path.joincsv-file 构造绝对文件路径,并将其提供给脚本读取数据。 要调试脚本的当前工作目录,请使用 os.getcwd()