import numpy as np
import random
import math
from matplotlib.colors import LogNorm
from astropy.io import fits
from astropy.table import Table
from numpy import rec
import csv 
import os

def delete_er(s):
  res = s.replace('*','')
  return res


data_rows=[]
with open('list_fits_files.csv','r') as csvfile:
    rows = csv.reader(csvfile, delimiter=';')
    i=0
    for row in rows:
      os.chdir(row[2])
      try:
	hdulist = fits.open('output.fits')
      except IOError as e:
	print('NO FILE')
      name=row[0]
      arr=hdulist[2].header.keys()
      j=0
      while True:
	j=j+1
	r=None
	re=None
	n=None
	ne=None
	hdulst=hdulist[2]
	if ("COMP_"+str(j)) in arr:
	  if hdulst.header['COMP_'+str(j)] == 'sersic':
	    r=float(delete_er(hdulst.header[str(j)+'_RE'].split('+/-')[0]))
	    n=float(delete_er(hdulst.header[str(j)+'_N'].split('+/-')[0]))

	  if hdulst.header['COMP_'+str(j)] == 'expdisk':
	    r=float(delete_er(hdulst.header[str(j)+'_RS'].split('+/-')[0]))
	    
	  data_rows.append([name,float(delete_er(hdulst.header[str(j)+'_XC'].split('+/-')[0])),
			    float(delete_er(hdulst.header[str(j)+'_YC'].split('+/-')[0])),
			    hdulst.header['COMP_'+str(j)],r,n,
			    float(delete_er(hdulst.header[str(j)+'_AR'].split('+/-')[0])),
			    float(delete_er(hdulst.header[str(j)+'_PA'].split('+/-')[0])),
			    float(delete_er(hdulst.header[str(j)+'_MAG'].split('+/-')[0])),
			    float(hdulst.header['CHI2NU'])])
	else:
	  break
      os.chdir('../../../')
      hdulist.close()

  
print data_rows
t = rec.array(data_rows,formats='S32,float32,float32,S1,float32,float32,float32,float32, float32,float32',names='obj_name,x,y, comp,r,n,ar,pa, mag,chi2nu')
print t
hdu = fits.new_table(t)
hdu.writeto('table_fitting_results.fits')

