import glob
import os
from datetime import datetime
import csv

results = []

for txt_file in glob.glob('C:\\myTemp\\UNOMAHA_FILES\\TEXT_VERSION\\*.txt'):
    with open(txt_file,'rb') as fh:
        file_list = fh.readlines()
        cik,rdate, cdate, fval, index = txt_file.split(os.sep)[-1].split('.')[0].split('-')
        base_dict = {'CIK':cik,'RDATE':rdate,'CDATE':cdate,'FVAL':fval,'INDEX':index,'FNAME':txt_file}
        for n, line in enumerate(file_list[0:30]):
            if not line.strip().upper().startswith(b'FORM'):
                continue
            line = line.upper().strip()
            temp_dict = dict()
            temp_dict['FORM'] = line
            temp_dict['NEXT_LINE'] = file_list[n+1].upper().strip()
            temp_dict['SECOND_LINE'] = file_list[n+2].upper().strip()
            if b'YEAR ENDED' in line:
                doc_date = line.split(b'ENDED ')[-1]
                try:
                    doc_cdate = datetime.strptime(doc_date.decode('ascii'),'%B %d, %Y')
                except Exception:
                    doc_cdate = None
                if doc_cdate is not None:
                    temp_dict['10KCDATE'] = doc_cdate.strftime('%m/%d/%Y')
            for k, key in enumerate(['NEXT_LINE','SECOND_LINE']):
                test_line = temp_dict[key]
                if test_line.startswith(b'FILED'):
                    test_date = test_line.split(b' ',maxsplit = 1)[-1]
                    try:
                        doc_rdate = datetime.strptime(test_date.decode('ascii'),'%B %d, %Y')
                    except Exception:
                        doc_rdate = None
                    if doc_rdate is not None:
                        temp_dict['10KRDATE_' + str(k+1)] = doc_rdate.strftime('%m/%d/%Y')
            
            temp_dict.update(base_dict)
            results.append(temp_dict)

final = ['CIK', 'RDATE', 'CDATE', 'FVAL', 'INDEX', 'FNAME', 'FORM', 'NEXT_LINE', 'SECOND_LINE', '10KCDATE', '10KRDATE_1', '10KRDATE_2']

header_dict = dict((ch,ch) for ch in final)
outref = open('C:\\myTemp\\UNOMAHA_FILES\\COMMENT_DETAILS.csv','w',newline = '',encoding = 'utf-8')
mywriter = csv.DictWriter(outref, fieldnames = final)
mywriter.writerow(header_dict)

mywriter.writerows(results)
outref.close()
