Eclipse PyDev - чтение CSV из разветвленного проекта - PullRequest
0 голосов
/ 25 августа 2018

Я клонировал копию "machine_learning_examples" из GitHub (https://github.com/lazyprogrammer/machine_learning_examples).. В ней есть файл "data_2d.csv" в папке "linear_regression_class".

Я добавил ссылку в своем проекте в проект 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 голосов
/ 26 августа 2018

Если ваш файл загружен на ваш компьютер, вы должны указать относительный (или абсолютный) путь к файлу и проверить, есть ли у сценария Python разрешения на его чтение.Если вы включите относительный путь, он всегда читается относительно исполняемого файла.Если вы импортируете различные модули, я рекомендую установить абсолютный путь к базе каталогов и использовать os.join, чтобы избежать несоответствий, связанных с местом, где вы запускаете скрипт.

Если файл не на вашем компьютере, этов Интернете (независимо от того, находится ли он в вашем репо или в раздвоенном репо - или даже в частном VPS или на сайте WordPress), вы не можете загрузить его в скрипт Python,Вы должны загрузить его в локальный каталог, а затем открыть его.

Другой вариант - загрузить его в файлоподобный объект, который хранится не на диске, а в памяти (что-то вроде временной загрузки) изатем удалите объект после того, как с ним покончено.Смотрите здесь пример:

(отредактированный пример взят из Python - Загрузка файла с использованием запросов, непосредственно в память )

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 документация.

0 голосов
/ 26 августа 2018

Попробуйте добавить каталог csv в путь Python во время выполнения,

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