【问题标题】:Reading values for CSV file using Python使用 Python 读取 CSV 文件的值
【发布时间】:2019-03-09 16:15:45
【问题描述】:

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

minzoomma​​xzoom 返回的值是

0   5
5   1
1   ,

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

【问题讨论】:

  • 您从 csv 读取的是一个字符串。索引不起作用。拆分将是一个很好的方法。如果您有问题,请发布输出或问题,或两者兼而有之。
  • 您是否考虑过为此使用 csv 模块?
  • minzoom, maxzoom = line.split(',')?索引不起作用,因为缩放可能超过 10,这意味着您需要两个字符而不是一个字符,并且您可能需要移动最大缩放位置。
  • 为什么不直接使用pandas数据框的read_csv方法呢?

标签: python csv string-parsing


【解决方案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,它将使用您的标题行来生成字典。

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

【讨论】:

  • 感谢 Corentin!我尝试了上面的第一种方法,现在 readShpFile 方法可以按预期工作!太感谢了!戴夫
  • 也感谢 Corentin 提供 CSV 模块文档链接,非常感谢!
【解决方案2】:

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

【讨论】:

  • 感谢 Y.Wang。之前没有使用过 numpy,因为我是 python 新手,但会尝试这种方法。戴夫
猜你喜欢
  • 2011-08-12
  • 2010-10-28
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
相关资源
最近更新 更多