2017-04-18 63 views
0

我试图在processing.py中加载一个csv文件作为表格。 Java环境允许我使用loadTable()函数,但是,我无法在Python环境中找到等效函数。在processing.py中加载csv文件

+1

是否使用标准的python库来读取CSV不适合您的用例? https://docs.python.org/2/library/csv.html – justderb

+0

[试试这个](http://stackoverflow.com/questions/3518778/how-to-read-csv-into-record-array-in -numpy) –

+0

Processing.py现在看起来有'loadTable':https://github.com/jdf/processing.py/blob/7c30e038600c221c5b70590a50160d918b5dd86b/mode/examples/Topics/AdvancedData/LoadSaveTable/LoadSaveTable.pyde#L44 – justderb

回答

0

你可以用这个解析您的CSV文件中的一个数组列表:

import numpy as np 
array_list = np.genfromtxt('file.csv',delimiter=';',dtype=None) 
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 

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