Generate c/c++ header file from a CSV file (for array declaration)

# -*- coding: utf-8 -*-
import csv

f = open('data.csv', 'r')
reader = csv.reader(f)
num_rows = sum(1 for each in reader)
f.seek(0)  #reposition
reader = csv.reader(f, delimiter=',', skipinitialspace=True)
num_cols = len(next(reader))
f.seek(0)  #reposition

print num_rows
print num_cols

# prolog
print('float myarray[%d][%d] = {' % (int(num_rows), int(num_cols)))

for row in csv.reader(f):
    for element in row:
        print '%f,' % float(element),
    print ""

# epilog
print('};')

f.close()
  • data.csv
11.49330,6.30559,8.74701,10508,-0.03968,-0.05446,0.00546,10508
11.47417,6.31635,8.78288,260493,-0.03236,-0.05233,0.00519,260493
11.48972,6.34027,8.79603,600486,-0.03263,-0.05074,0.00439,600486
11.45743,6.30679,8.73984,940482,-0.03529,-0.05074,0.00533,940482
11.47537,6.31994,8.77331,1285475,-0.03249,-0.05340,0.00399,1285475
11.47417,6.29842,8.76973,1625472,-0.03276,-0.05180,0.00533,1625472
11.50526,6.27929,8.72549,1970465,-0.03769,-0.05074,0.00506,1970465
11.47178,6.32712,8.70875,2310459,-0.03436,-0.05167,0.00546,2310459
11.48135,6.29244,8.74223,2650454,-0.03422,-0.05113,0.00613,2650454
11.37972,6.26853,8.73505,2995448,-0.03382,-0.04821,0.00533,2995448
11.48732,6.33668,8.70516,3345443,-0.03609,-0.04794,0.00533,3345443
11.48135,6.33309,8.76494,3695437,-0.03422,-0.05180,0.00373,3695437
11.52200,6.35701,8.75179,4050432,-0.03502,-0.05113,0.00439,4050432
11.48972,6.33548,8.75538,4405426,-0.03462,-0.04927,0.00506,4405426
11.48015,6.33907,8.76973,4755422,-0.03342,-0.05020,0.00613,4755422
11.49330,6.33788,8.76375,5110415,-0.03356,-0.04994,0.00559,5110415
11.49689,6.32353,8.77331,5465409,-0.03595,-0.05100,0.00479,5465409
11.49211,6.31157,8.76733,5815405,-0.03702,-0.04847,0.00506,5815405
11.46939,6.31396,8.75538,6170398,-0.03422,-0.04954,0.00479,6170398
11.49211,6.34027,8.71832,6525393,-0.03489,-0.05207,0.00506,6525393
11.49091,6.31994,8.73027,6875389,-0.03462,-0.04967,0.00519,6875389
11.47059,6.33309,8.74223,7230383,-0.03675,-0.04954,0.00466,7230383
11.49569,6.33190,8.72908,7585378,-0.03516,-0.05020,0.00399,7585378
11.45743,6.32114,8.73984,7935373,-0.03129,-0.05247,0.00586,7935373
11.45026,6.31635,8.68125,8290367,-0.03422,-0.05207,0.00586,8290367
11.47896,6.31277,8.73266,8645362,-0.03516,-0.05127,0.00506,8645362
11.49928,6.32353,8.75657,8995356,-0.03529,-0.05180,0.00533,8995356
11.48254,6.31635,8.74223,9350352,-0.03356,-0.05180,0.00479,9350352
11.48732,6.31875,8.73147,9705347,-0.03462,-0.05100,0.00533,9705347
11.50885,6.32712,8.75418,10055341,-0.03422,-0.04860,0.00599,10055341
11.50406,6.32951,8.78407,10410336,-0.03369,-0.05193,0.00479,10410336
11.47417,6.31277,8.72788,10765331,-0.03449,-0.05047,0.00399,10765331
11.47896,6.31277,8.72429,11120325,-0.03316,-0.05060,0.00519,11120325
11.47059,6.32472,8.76853,11470320,-0.03342,-0.04994,0.00493,11470320
11.47776,6.31277,8.72908,11825314,-0.03476,-0.05167,0.00439,11825314
11.47417,6.33190,8.75060,12180310,-0.03369,-0.05220,0.00506,12180310
11.48493,6.34624,8.72788,12535305,-0.03555,-0.05047,0.00546,12535305
11.49450,6.33070,8.69919,12885299,-0.03582,-0.04834,0.00533,12885299
11.49809,6.31994,8.74223,13240296,-0.03555,-0.05047,0.00453,13240296
11.47896,6.30799,8.69201,13595291,-0.03449,-0.05047,0.00519,13595291
11.49091,6.32233,8.76255,13950285,-0.03342,-0.05100,0.00493,13950285
11.49450,6.32114,8.72190,14305281,-0.03476,-0.05087,0.00533,14305281
11.47656,6.30799,8.78288,14655274,-0.03462,-0.04940,0.00519,14655274
11.47896,6.33429,8.73505,15010271,-0.03369,-0.05127,0.00533,15010271
11.47537,6.31635,8.75060,15365264,-0.03462,-0.04874,0.00519,15365264
11.50645,6.30799,8.76136,15720260,-0.03369,-0.05100,0.00706,15720260
11.47298,6.30559,8.72310,16075255,-0.03422,-0.05113,0.00546,16075255
11.48374,6.28646,8.70516,16425250,-0.03422,-0.05100,0.00586,16425250
11.50765,6.31396,8.76136,16780246,-0.03356,-0.05074,0.00586,16780246
11.50287,6.33429,8.74940,17135240,-0.03502,-0.05047,0.00613,17135240
11.47417,6.29364,8.79244,17490236,-0.03422,-0.04874,0.00493,17490236
11.47776,6.32712,8.73386,17845233,-0.03462,-0.05100,0.00466,17845233
11.45743,6.32951,8.72071,18195226,-0.03476,-0.05127,0.00439,18195226
11.49689,6.34027,8.73505,18550222,-0.03369,-0.05180,0.00519,18550222
11.48374,6.31516,8.74821,18905216,-0.03569,-0.04954,0.00506,18905216
11.48852,6.33788,8.69919,19260212,-0.03476,-0.05127,0.00506,19260212
11.47059,6.29842,8.73864,19610208,-0.03529,-0.05127,0.00533,19610208
11.47178,6.31755,8.75179,19965204,-0.03529,-0.04980,0.00479,19965204
11.50287,6.33429,8.82831,20320197,-0.03582,-0.05167,0.00533,20320197
11.51004,6.32233,8.75897,20675193,-0.03396,-0.04821,0.00519,20675193
11.31516,6.19440,8.62147,21030189,-0.07337,0.03489,-0.06552,21030189
10.97441,5.58226,8.90722,21380185,-0.56621,-0.08869,0.11931,21380185
11.28049,5.49259,8.67049,21725178,0.00080,-0.09415,0.00027,21725178
  • result
float myarray[63][8] = {
11.493300, 6.305590, 8.747010, 10508.000000, -0.039680, -0.054460, 0.005460, 10508.000000, 
11.474170, 6.316350, 8.782880, 260493.000000, -0.032360, -0.052330, 0.005190, 260493.000000, 
11.489720, 6.340270, 8.796030, 600486.000000, -0.032630, -0.050740, 0.004390, 600486.000000, 
11.457430, 6.306790, 8.739840, 940482.000000, -0.035290, -0.050740, 0.005330, 940482.000000, 
11.475370, 6.319940, 8.773310, 1285475.000000, -0.032490, -0.053400, 0.003990, 1285475.000000, 
11.474170, 6.298420, 8.769730, 1625472.000000, -0.032760, -0.051800, 0.005330, 1625472.000000, 
11.505260, 6.279290, 8.725490, 1970465.000000, -0.037690, -0.050740, 0.005060, 1970465.000000, 
11.471780, 6.327120, 8.708750, 2310459.000000, -0.034360, -0.051670, 0.005460, 2310459.000000, 
11.481350, 6.292440, 8.742230, 2650454.000000, -0.034220, -0.051130, 0.006130, 2650454.000000, 
11.379720, 6.268530, 8.735050, 2995448.000000, -0.033820, -0.048210, 0.005330, 2995448.000000, 
11.487320, 6.336680, 8.705160, 3345443.000000, -0.036090, -0.047940, 0.005330, 3345443.000000, 
11.481350, 6.333090, 8.764940, 3695437.000000, -0.034220, -0.051800, 0.003730, 3695437.000000, 
11.522000, 6.357010, 8.751790, 4050432.000000, -0.035020, -0.051130, 0.004390, 4050432.000000, 
11.489720, 6.335480, 8.755380, 4405426.000000, -0.034620, -0.049270, 0.005060, 4405426.000000, 
11.480150, 6.339070, 8.769730, 4755422.000000, -0.033420, -0.050200, 0.006130, 4755422.000000, 
11.493300, 6.337880, 8.763750, 5110415.000000, -0.033560, -0.049940, 0.005590, 5110415.000000, 
11.496890, 6.323530, 8.773310, 5465409.000000, -0.035950, -0.051000, 0.004790, 5465409.000000, 
11.492110, 6.311570, 8.767330, 5815405.000000, -0.037020, -0.048470, 0.005060, 5815405.000000, 
11.469390, 6.313960, 8.755380, 6170398.000000, -0.034220, -0.049540, 0.004790, 6170398.000000, 
11.492110, 6.340270, 8.718320, 6525393.000000, -0.034890, -0.052070, 0.005060, 6525393.000000, 
11.490910, 6.319940, 8.730270, 6875389.000000, -0.034620, -0.049670, 0.005190, 6875389.000000, 
11.470590, 6.333090, 8.742230, 7230383.000000, -0.036750, -0.049540, 0.004660, 7230383.000000, 
11.495690, 6.331900, 8.729080, 7585378.000000, -0.035160, -0.050200, 0.003990, 7585378.000000, 
11.457430, 6.321140, 8.739840, 7935373.000000, -0.031290, -0.052470, 0.005860, 7935373.000000, 
11.450260, 6.316350, 8.681250, 8290367.000000, -0.034220, -0.052070, 0.005860, 8290367.000000, 
11.478960, 6.312770, 8.732660, 8645362.000000, -0.035160, -0.051270, 0.005060, 8645362.000000, 
11.499280, 6.323530, 8.756570, 8995356.000000, -0.035290, -0.051800, 0.005330, 8995356.000000, 
11.482540, 6.316350, 8.742230, 9350352.000000, -0.033560, -0.051800, 0.004790, 9350352.000000, 
11.487320, 6.318750, 8.731470, 9705347.000000, -0.034620, -0.051000, 0.005330, 9705347.000000, 
11.508850, 6.327120, 8.754180, 10055341.000000, -0.034220, -0.048600, 0.005990, 10055341.000000, 
11.504060, 6.329510, 8.784070, 10410336.000000, -0.033690, -0.051930, 0.004790, 10410336.000000, 
11.474170, 6.312770, 8.727880, 10765331.000000, -0.034490, -0.050470, 0.003990, 10765331.000000, 
11.478960, 6.312770, 8.724290, 11120325.000000, -0.033160, -0.050600, 0.005190, 11120325.000000, 
11.470590, 6.324720, 8.768530, 11470320.000000, -0.033420, -0.049940, 0.004930, 11470320.000000, 
11.477760, 6.312770, 8.729080, 11825314.000000, -0.034760, -0.051670, 0.004390, 11825314.000000, 
11.474170, 6.331900, 8.750600, 12180310.000000, -0.033690, -0.052200, 0.005060, 12180310.000000, 
11.484930, 6.346240, 8.727880, 12535305.000000, -0.035550, -0.050470, 0.005460, 12535305.000000, 
11.494500, 6.330700, 8.699190, 12885299.000000, -0.035820, -0.048340, 0.005330, 12885299.000000, 
11.498090, 6.319940, 8.742230, 13240296.000000, -0.035550, -0.050470, 0.004530, 13240296.000000, 
11.478960, 6.307990, 8.692010, 13595291.000000, -0.034490, -0.050470, 0.005190, 13595291.000000, 
11.490910, 6.322330, 8.762550, 13950285.000000, -0.033420, -0.051000, 0.004930, 13950285.000000, 
11.494500, 6.321140, 8.721900, 14305281.000000, -0.034760, -0.050870, 0.005330, 14305281.000000, 
11.476560, 6.307990, 8.782880, 14655274.000000, -0.034620, -0.049400, 0.005190, 14655274.000000, 
11.478960, 6.334290, 8.735050, 15010271.000000, -0.033690, -0.051270, 0.005330, 15010271.000000, 
11.475370, 6.316350, 8.750600, 15365264.000000, -0.034620, -0.048740, 0.005190, 15365264.000000, 
11.506450, 6.307990, 8.761360, 15720260.000000, -0.033690, -0.051000, 0.007060, 15720260.000000, 
11.472980, 6.305590, 8.723100, 16075255.000000, -0.034220, -0.051130, 0.005460, 16075255.000000, 
11.483740, 6.286460, 8.705160, 16425250.000000, -0.034220, -0.051000, 0.005860, 16425250.000000, 
11.507650, 6.313960, 8.761360, 16780246.000000, -0.033560, -0.050740, 0.005860, 16780246.000000, 
11.502870, 6.334290, 8.749400, 17135240.000000, -0.035020, -0.050470, 0.006130, 17135240.000000, 
11.474170, 6.293640, 8.792440, 17490236.000000, -0.034220, -0.048740, 0.004930, 17490236.000000, 
11.477760, 6.327120, 8.733860, 17845233.000000, -0.034620, -0.051000, 0.004660, 17845233.000000, 
11.457430, 6.329510, 8.720710, 18195226.000000, -0.034760, -0.051270, 0.004390, 18195226.000000, 
11.496890, 6.340270, 8.735050, 18550222.000000, -0.033690, -0.051800, 0.005190, 18550222.000000, 
11.483740, 6.315160, 8.748210, 18905216.000000, -0.035690, -0.049540, 0.005060, 18905216.000000, 
11.488520, 6.337880, 8.699190, 19260212.000000, -0.034760, -0.051270, 0.005060, 19260212.000000, 
11.470590, 6.298420, 8.738640, 19610208.000000, -0.035290, -0.051270, 0.005330, 19610208.000000, 
11.471780, 6.317550, 8.751790, 19965204.000000, -0.035290, -0.049800, 0.004790, 19965204.000000, 
11.502870, 6.334290, 8.828310, 20320197.000000, -0.035820, -0.051670, 0.005330, 20320197.000000, 
11.510040, 6.322330, 8.758970, 20675193.000000, -0.033960, -0.048210, 0.005190, 20675193.000000, 
11.315160, 6.194400, 8.621470, 21030189.000000, -0.073370, 0.034890, -0.065520, 21030189.000000, 
10.974410, 5.582260, 8.907220, 21380185.000000, -0.566210, -0.088690, 0.119310, 21380185.000000, 
11.280490, 5.492590, 8.670490, 21725178.000000, 0.000800, -0.094150, 0.000270, 21725178.000000, 
};
#include <stdio.h>
#include <stdlib.h>

void Load_CSV(void);

int main(int argc, char* argv[])
{
    int i, j;
    float myarray[63][8] = {
        11.493300, 6.305590, 8.747010, 10508.000000, -0.039680, -0.054460, 0.005460, 10508.000000,
        11.474170, 6.316350, 8.782880, 260493.000000, -0.032360, -0.052330, 0.005190, 260493.000000,
        11.489720, 6.340270, 8.796030, 600486.000000, -0.032630, -0.050740, 0.004390, 600486.000000,
        11.457430, 6.306790, 8.739840, 940482.000000, -0.035290, -0.050740, 0.005330, 940482.000000,
        11.475370, 6.319940, 8.773310, 1285475.000000, -0.032490, -0.053400, 0.003990, 1285475.000000,
        11.474170, 6.298420, 8.769730, 1625472.000000, -0.032760, -0.051800, 0.005330, 1625472.000000,
        11.505260, 6.279290, 8.725490, 1970465.000000, -0.037690, -0.050740, 0.005060, 1970465.000000,
        11.471780, 6.327120, 8.708750, 2310459.000000, -0.034360, -0.051670, 0.005460, 2310459.000000,
        11.481350, 6.292440, 8.742230, 2650454.000000, -0.034220, -0.051130, 0.006130, 2650454.000000,
        11.379720, 6.268530, 8.735050, 2995448.000000, -0.033820, -0.048210, 0.005330, 2995448.000000,
        11.487320, 6.336680, 8.705160, 3345443.000000, -0.036090, -0.047940, 0.005330, 3345443.000000,
        11.481350, 6.333090, 8.764940, 3695437.000000, -0.034220, -0.051800, 0.003730, 3695437.000000,
        11.522000, 6.357010, 8.751790, 4050432.000000, -0.035020, -0.051130, 0.004390, 4050432.000000,
        11.489720, 6.335480, 8.755380, 4405426.000000, -0.034620, -0.049270, 0.005060, 4405426.000000,
        11.480150, 6.339070, 8.769730, 4755422.000000, -0.033420, -0.050200, 0.006130, 4755422.000000,
        11.493300, 6.337880, 8.763750, 5110415.000000, -0.033560, -0.049940, 0.005590, 5110415.000000,
        11.496890, 6.323530, 8.773310, 5465409.000000, -0.035950, -0.051000, 0.004790, 5465409.000000,
        11.492110, 6.311570, 8.767330, 5815405.000000, -0.037020, -0.048470, 0.005060, 5815405.000000,
        11.469390, 6.313960, 8.755380, 6170398.000000, -0.034220, -0.049540, 0.004790, 6170398.000000,
        11.492110, 6.340270, 8.718320, 6525393.000000, -0.034890, -0.052070, 0.005060, 6525393.000000,
        11.490910, 6.319940, 8.730270, 6875389.000000, -0.034620, -0.049670, 0.005190, 6875389.000000,
        11.470590, 6.333090, 8.742230, 7230383.000000, -0.036750, -0.049540, 0.004660, 7230383.000000,
        11.495690, 6.331900, 8.729080, 7585378.000000, -0.035160, -0.050200, 0.003990, 7585378.000000,
        11.457430, 6.321140, 8.739840, 7935373.000000, -0.031290, -0.052470, 0.005860, 7935373.000000,
        11.450260, 6.316350, 8.681250, 8290367.000000, -0.034220, -0.052070, 0.005860, 8290367.000000,
        11.478960, 6.312770, 8.732660, 8645362.000000, -0.035160, -0.051270, 0.005060, 8645362.000000,
        11.499280, 6.323530, 8.756570, 8995356.000000, -0.035290, -0.051800, 0.005330, 8995356.000000,
        11.482540, 6.316350, 8.742230, 9350352.000000, -0.033560, -0.051800, 0.004790, 9350352.000000,
        11.487320, 6.318750, 8.731470, 9705347.000000, -0.034620, -0.051000, 0.005330, 9705347.000000,
        11.508850, 6.327120, 8.754180, 10055341.000000, -0.034220, -0.048600, 0.005990, 10055341.000000,
        11.504060, 6.329510, 8.784070, 10410336.000000, -0.033690, -0.051930, 0.004790, 10410336.000000,
        11.474170, 6.312770, 8.727880, 10765331.000000, -0.034490, -0.050470, 0.003990, 10765331.000000,
        11.478960, 6.312770, 8.724290, 11120325.000000, -0.033160, -0.050600, 0.005190, 11120325.000000,
        11.470590, 6.324720, 8.768530, 11470320.000000, -0.033420, -0.049940, 0.004930, 11470320.000000,
        11.477760, 6.312770, 8.729080, 11825314.000000, -0.034760, -0.051670, 0.004390, 11825314.000000,
        11.474170, 6.331900, 8.750600, 12180310.000000, -0.033690, -0.052200, 0.005060, 12180310.000000,
        11.484930, 6.346240, 8.727880, 12535305.000000, -0.035550, -0.050470, 0.005460, 12535305.000000,
        11.494500, 6.330700, 8.699190, 12885299.000000, -0.035820, -0.048340, 0.005330, 12885299.000000,
        11.498090, 6.319940, 8.742230, 13240296.000000, -0.035550, -0.050470, 0.004530, 13240296.000000,
        11.478960, 6.307990, 8.692010, 13595291.000000, -0.034490, -0.050470, 0.005190, 13595291.000000,
        11.490910, 6.322330, 8.762550, 13950285.000000, -0.033420, -0.051000, 0.004930, 13950285.000000,
        11.494500, 6.321140, 8.721900, 14305281.000000, -0.034760, -0.050870, 0.005330, 14305281.000000,
        11.476560, 6.307990, 8.782880, 14655274.000000, -0.034620, -0.049400, 0.005190, 14655274.000000,
        11.478960, 6.334290, 8.735050, 15010271.000000, -0.033690, -0.051270, 0.005330, 15010271.000000,
        11.475370, 6.316350, 8.750600, 15365264.000000, -0.034620, -0.048740, 0.005190, 15365264.000000,
        11.506450, 6.307990, 8.761360, 15720260.000000, -0.033690, -0.051000, 0.007060, 15720260.000000,
        11.472980, 6.305590, 8.723100, 16075255.000000, -0.034220, -0.051130, 0.005460, 16075255.000000,
        11.483740, 6.286460, 8.705160, 16425250.000000, -0.034220, -0.051000, 0.005860, 16425250.000000,
        11.507650, 6.313960, 8.761360, 16780246.000000, -0.033560, -0.050740, 0.005860, 16780246.000000,
        11.502870, 6.334290, 8.749400, 17135240.000000, -0.035020, -0.050470, 0.006130, 17135240.000000,
        11.474170, 6.293640, 8.792440, 17490236.000000, -0.034220, -0.048740, 0.004930, 17490236.000000,
        11.477760, 6.327120, 8.733860, 17845233.000000, -0.034620, -0.051000, 0.004660, 17845233.000000,
        11.457430, 6.329510, 8.720710, 18195226.000000, -0.034760, -0.051270, 0.004390, 18195226.000000,
        11.496890, 6.340270, 8.735050, 18550222.000000, -0.033690, -0.051800, 0.005190, 18550222.000000,
        11.483740, 6.315160, 8.748210, 18905216.000000, -0.035690, -0.049540, 0.005060, 18905216.000000,
        11.488520, 6.337880, 8.699190, 19260212.000000, -0.034760, -0.051270, 0.005060, 19260212.000000,
        11.470590, 6.298420, 8.738640, 19610208.000000, -0.035290, -0.051270, 0.005330, 19610208.000000,
        11.471780, 6.317550, 8.751790, 19965204.000000, -0.035290, -0.049800, 0.004790, 19965204.000000,
        11.502870, 6.334290, 8.828310, 20320197.000000, -0.035820, -0.051670, 0.005330, 20320197.000000,
        11.510040, 6.322330, 8.758970, 20675193.000000, -0.033960, -0.048210, 0.005190, 20675193.000000,
        11.315160, 6.194400, 8.621470, 21030189.000000, -0.073370, 0.034890, -0.065520, 21030189.000000,
        10.974410, 5.582260, 8.907220, 21380185.000000, -0.566210, -0.088690, 0.119310, 21380185.000000,
        11.280490, 5.492590, 8.670490, 21725178.000000, 0.000800, -0.094150, 0.000270, 21725178.000000
    };

    for (i = 0; i < 63; ++i) {
        for (j = 0;  j< 8; j++) {
            printf("%f, ", myarray[i][j]);
        }
        printf("\n");
    } 

    return 0;
}