Чтение значений для файла CSV с использованием Python - PullRequest
0 голосов
/ 04 октября 2018

У меня возникли проблемы с получением значений строк из CSV-файла ниже

CSV
minzoom, maxzoom
0,5
5,10
10,18

Мой код:

i = 0
for line in open("C:/Marine/lookup/distinct_lookup_scales.csv"):
    i = i + 1
    if (i > 1):  #Skip header
        print("Line: " + line)
        #csv_row = line.split(',')
        minzoom = str(line[0])
        maxzoom = str(line[2])
        print("Minzoom:" + minzoom)
        print("Maxzoom:" + maxzoom)
        readShpFile(minzoom, maxzoom)

Значения, возвращенные для minzoom и maxzoom был

0   5
5   1
1   ,

Я использовал разделение линии, но вернулся к попытке получить элементы из линии Не уверен, что это был лучший подход

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы можете попробовать numpy.genfromtxt, например:

import numpy as np

data = np.genfromtxt("C:/Marine/lookup/distinct_lookup_scales.csv", delimiter = ",",
                     skip_header = 1)
minzooms = data[:,0]
maxzooms = data[:,1]
0 голосов
/ 04 октября 2018

Это не то, как вы должны читать CSV-файл.Взгляните на документацию csv модуля .

Один пример:

import csv

with open('C:/Marine/lookup/distinct_lookup_scales.csv', 'r') as csvfile:
    csvreader = csv.reader(csvfile)
    csvreader.next() #skip header
    for row in csvreader:
        minzoom = int(row[0])
        maxzoom = int(row[1])
        print('minzoom : {}'.format(minzoom))
        print('maxzoom : {}'.format(maxzoom))

Вы также можете использовать DictReader, который будет использовать строку заголовка для получения словарей.

import csv

with open('C:/Marine/lookup/distinct_lookup_scales.csv', 'r') as csvfile:
    csvreader = csv.DictReader(csvfile)
    for row in csvreader:
        minzoom = int(row['minzoom'])
        maxzoom = int(row['maxzoom'])
        print('minzoom : {}'.format(minzoom))
        print('maxzoom : {}'.format(maxzoom))
...