使用 Python 读取 CSV 文件的值

Reading values for CSV file using Python

我在从下面的 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)

minzoommaxzoom 的返回值已

0   5
5   1
1   ,

我曾使用行拆分但又恢复为尝试从行中获取项目 不确定这是否是最好的方法

这不是您阅读 csv 文件的方式。 看看 csv module documentation.

一个例子:

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,它将使用您的 header 行生成字典。

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))

你可以试试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]