繁体   English   中英

导入存储在python模块中的csv数据

[英]Importing csv data stored in a python module

我有一个科学计算项目,我正在运行分析,并希望与python模块保存一些数据。 我希望数据是“可导入的”,可以在几个例子中使用。

项目文件夹层次结构如下所示:

~/parent/
    setup.py
    setupegg.py
    /project
        __init__.py
        core.py
        /data
            __init__.py
            load_data.py
            somedata.csv
        /examples
            __init__.py
            ex1.py

我从项目主文件夹运行python setupegg.py develop ,因此这个包可以从我的计算机上的任何地方导入。 这项工作到目前为止。

load_data.py文件如下所示:

import pandas as pd
df = pd.read_csv("somedata.csv")

文件ex1.py看起来像这样:

from test_module.data.load_data import df
def run():
    print df

但是现在当我from project.examples import ex1from project.data import load_data运行时from project.examples import ex1我收到一条IOError消息,说'somedata.csv'不存在。

如果我将它添加到data / load_data.py文件的前导码中

import os
print os.listdir('./')

它打印我正在工作的目录中的文件/文件夹列表。

当然,如果我对数据使用绝对路径名,那么它将完全加载。 如何调整import语句,以便读取数据文件夹中的csv文件不使用绝对路径名?

如果csv与打开它的模块位于同一目录中,那么您可以尝试使用__file__属性:

import os
import pandas as pd
df = pd.read_csv(os.path.join(os.path.dirname(__file__), "somedata.csv"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM