2017-04-18 49 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值的默認格式)。