Eclipse PyDev-从派生项目中读取CSV

时间:2018-08-25 20:47:49

标签: python eclipse csv pydev

我已经从GitHub(https://github.com/lazyprogrammer/machine_learning_examples)克隆了“ machine_learning_examples”的副本。在其中的“ linear_regression_class”文件夹下有一个文件“ data_2d.csv”。

我在项目中添加了对“ machine_learning_examples”项目的引用,并尝试了使用不同目标文本的“ from”和“ import”语句,但是无法确定引用“ data_2d.csv”的语法文件。

我已经能够将csv文件本地复制到项目中的文件夹中,然后只需获取示例代码并修改目标即可:

import numpy as np

X = []

for line in open('data/data_2d.csv'):
    row = line.split(',')
    sample = list(map(float, row))
    X.append(sample)


X = np.array(X)
print(X)

这可以正常工作,正如预期的那样。但是,我想直接引用克隆项目中存在的csv。

2 个答案:

答案 0 :(得分:0)

如果文件是从计算机下载的,则必须包含文件的相对(或绝对)路径,并且必须检查Python脚本是否具有读取权限。如果包含相对路径,则始终相对于正在执行的文件读取该相对路径。如果您导入各种模块,建议您为目录库设置一个绝对路径,并使用os.join以避免与运行脚本的位置有关的不一致。

如果该文件不在您的计算机中,那就是在Internet中(无论它是属于您自己的仓库还是分叉的仓库-甚至是私人VPS或WordPress网站中的文件)问题),则无法将其加载到Python脚本中。您必须将其下载到本地目录,然后将其打开。

另一种选择是将其下载到文件类型的对象中,该对象不存储在磁盘中,而是存储在内存中(一种临时下载),然后在完成操作后将其删除。参见以下示例:

(摘自Python - Download File Using Requests, Directly to Memory的示例)

import io
import zipfile
from contextlib import closing
import requests # $ pip install requests

import csv

r = requests.get(url_to_file)
with closing(r), io.BytesIO(r.content) as archive:
    # do whatever you want with your archive
    # you can, for example, import it with csv
    reader = csv.reader(archive)
    # or
    writer = csv.writer(archive)

有关https://docs.python.org/3/library/csv.html的csv文档,请参阅。

答案 1 :(得分:-1)

尝试在运行时将csv目录添加到Python路径,

import sys
sys.path.append('/csvfilepath')