在processing.py中加载csv文件

时间:2017-04-18 06:13:06

标签: python csv processing visualization

我正在尝试将processing.py中的csv文件作为表加载。 Java环境允许我使用loadTable()函数,但是,我无法在python环境中找到等效的函数。

3 个答案:

答案 0 :(得分:0)

您可以使用以下命令解析数组列表中的csv文件:

import numpy as np
array_list = np.genfromtxt('file.csv',delimiter=';',dtype=None)

答案 1 :(得分:0)

可以按如下方式添加缺少的功能:

import csv

class Row(object):
    def __init__(self, dict_row):
        self.dict_row = dict_row

    def getFloat(self, key):
        return float(self.dict_row[key])

    def getString(self, key):
        return self.dict_row[key]

class loadTable(object):
    def __init__(self, csv_filename, header):
        with open(csv_filename, "rb") as f_input:
            csv_input = csv.DictReader(f_input)
            self.data = [Row(row) for row in csv_input]

    def rows(self):
        return self.data

使用Python的csv.DictReader类将csv文件读入内存。这会将csv文件中的每一行视为字典。对于每一行,它创建一个Row类的实例,然后允许您以所需的格式检索条目。目前我刚编写了getFloat()getString()(这是所有csv值的默认格式)。

答案 2 :(得分:0)

你可以用这个创建一个空的 Table 对象:

from processing.data import Table
t = Table()

然后按照 https://discourse.processing.org/t/creating-an-empty-table-object-in-python-mode-and-some-other-hidden-data-classes/25121

中的讨论填充它

但我认为@martin-evans 提出的 Python Dict 会很好。你像这样加载它:

import csv
from codecs import open # optional to have the 'enconding="utf-8"' in Python 2

with open("data/pokemon.csv", encoding="utf-8") as f:
    data = list(csv.DictReader(f))  # a list of dicts, col-headers as keys