Skip to content

Instantly share code, notes, and snippets.

@lokesh1729
Created March 31, 2024 02:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lokesh1729/675468e1ae98e6e4dde3d9119573c67a to your computer and use it in GitHub Desktop.
Save lokesh1729/675468e1ae98e6e4dde3d9119573c67a to your computer and use it in GitHub Desktop.
import csv
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--file")
parser.add_argument("--outfile")
args = parser.parse_args()
mapping = {
"MF_NAME": "SHORT_NAME",
"INVESTOR_NAME": "Lokesh Sanapalli",
"PAN": "FGIPS2901D",
"FOLIO_NUMBER": "FOLIO",
"PRODUCT_CODE": None,
"SCHEME_NAME": "SHORT_NAME",
"Type": None,
"TRADE_DATE": "TRXN_DATE",
"TRANSACTION_TYPE": "TRXN_DESC",
"DIVIDEND_RATE": None,
"AMOUNT": "TRXN_AMOUNT",
"UNITS": "TRXN_UNITS",
"PRICE": "PURCH_PRICE",
"BROKER": None,
}
data = []
with open(args.file, "r") as fp:
for row in csv.DictReader(fp):
curr_row = {}
for key, value in mapping.items():
if value is not None:
curr_row[key] = row.get(value, value)
else:
curr_row[key] = row.get(value)
data.append(curr_row)
with open(args.outfile, "w") as fp:
writer = csv.DictWriter(fp, list(mapping.keys()))
writer.writeheader()
for row in data:
writer.writerow(row)
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment