import os import os.path import datetime from datetime import date from csv import reader import json import codecs import pdb if os.name =='nt': root = "//WDsentinel/share/CorpCDOs/Scenarios" elif os.name == 'posix': root = '/home/share/CorpCDOs/Scenarios' input = os.path.join(root, "prometheus.sss") for dealname in ["oceant2", "atr4cdo"]: reinvprices = os.path.join(root, "Intex curves", "csv", dealname + "-reinvprices.csv") with open(reinvprices, "r") as fhreinv: reinvprices = [line.rstrip("\n") for line in fhreinv] output = os.path.join(root, "Intex curves", "sss", dealname + ".sss") cdrscenarios = os.path.join(root, "Intex curves", "csv", dealname + "-cdr.csv") recoveryscenarios = os.path.join(root, "Intex curves", "csv", dealname + "-recovery.csv") fh2 = open(output, "w") fhcdr = open(cdrscenarios, "r") fhrecovery = open(recoveryscenarios, "r") csvcdr = reader(fhcdr) csvrecovery = reader(fhrecovery) cdrline = csvcdr.next() try: cdrline = "\t".join(["{0:.3f}".format(float(cdr)) for cdr in cdrline]) +"\n" recoveryline = csvrecovery.next() recoveryline = "\t".join(["{0:.3f}".format(float(recovery)) for recovery in recoveryline]) + "\n" except ValueError: pdb.set_trace() i=1 with open(input) as fh: for line in fh: if "LOSS_RATE[DEAL,{0}]".format(i) in line: newcdrline = "LOSS_RATE[DEAL,{0}]=".format(i) + cdrline fh2.write(newcdrline) continue if "LOSS_SEVERITY[DEAL,{0}]".format(i) in line: newrecoveryline = "LOSS_SEVERITY[DEAL,{0}]=".format(i) + recoveryline fh2.write(newrecoveryline) i=i+1 if i<=100: cdrline = csvcdr.next() cdrline = "\t".join(["{0:.3f}".format(float(cdr)) for cdr in cdrline]) + "\n" recoveryline = csvrecovery.next() recoveryline = "\t".join(["{0:.3f}".format(float(recovery)) \ for recovery in recoveryline]) + "\n" continue if "REINV_GLOBAL" in line: jsondict = line.split("=")[1] reinvdict = json.loads(jsondict) reinvdict['STANDARD_VAR[REINVEST_PRICE]']['value'] = ' '.join(reinvprices) fh2.write("=".join("REINV_GLOBAL", json.dumps(reinvdict)) fh2.write(line) fh2.close() fhrecovery.close() fhcdr.close() # sed -i -e "s/\(LOSS_NONPERF_SEVERITY\\[DEAL,[0-9]*\\]\)=.*$/\1=mkt(70)/g" stonln1_100.sss