I've written a function whose purpose is to open, read, access data values within the each file in an indicated directory and iteratively append each files data entries into empty lists which will then be used to construct a summary csv file.
The issue is that my lists are empty at the termination of the for loop. How do i get around this issue?
I've tried looking through existing questions and haven't found it helpful.
Here's my code:
fileid = [] * len(os.listdir(path))
objname = [] * len(os.listdir(path))
obsvtype = [] * len(os.listdir(path))
filtr = [] * len(os.listdir(path))
# Open, read, and iterate over files ending with the .fits extension in inputted path.
# Assign fits header key data to a variable and then append iteratively to respective empty list.
for fitsfile in os.listdir(path):
if fitsfile[-5:] == '.fits':
try:
hdulist = fits.open(str.format(fitsfile))
filename = hdulist[0].data['FILENAME']
fileid.append(filename)
object_name = hdulist[0].data['OBJECT']
objname.append(object_name)
obsvtyp = hdulist[0].data['OBSTYPE']
obsvtype.append(obsvtyp)
filt = hdulist[0].data['FILTERS']
filtr.append(filt)
except:
pass
print(fileid,objname,obsvtype,filtr)
# Create an empty pandas dataframe object (data table) and assign populated data lists to dataframe.
# columns.
dataframe = pd.DataFrame(data = None)
dataframe['Filename'] = fileid
dataframe['Object_Name'] = objname
dataframe['Observation_type'] = obsvtype
dataframe['Filter'] = filtr
print(dataframe)
# Export compiled dataframe object to a .csv file in specified directory path.
dataframe.to_csv(path + 'reduc_tbl_result.csv',columns = ['Filename','Object_name',
'Observation_Type','Filter'],index = None)
and the result:
([], [], [], []) Empty DataFrame Columns: [Filename, Object_Name, Observation_type, Filter] Index: [])
Thanks in advance.