title: Reading CSV, writing information to new CSV and sorting by column
body: <p>Working on something that takes values from a csv and writes them in a sentence to a new csv:</p>
  
  <pre><code>import csv
  
  with open('Links.csv', 'rb') as input_file, \
  open('Link Statements.csv', 'w') as output_file:
  
  reader = csv.reader(input_file, delimiter=',', quoting=csv.QUOTE_NONE)
  
  for row in reader:
      link_name, from_unit, to_unit, rate, type = row
      output_file.write(" %s," % (from_unit))
      output_file.write("Establish %s link %s at %s Kbps to %s.\n" % (type, link_name, rate, to_unit))
      output_file.write(" %s," % (to_unit))
      output_file.write("Terminate %s link %s at %s Kbps from %s.\n" % (type, link_name, rate, from_unit))
  </code></pre>
  
  <p>This takes the following:</p>
  
  <pre><code>MPP01,RCT-6,1/6,14336,LOS UHF MCR
  SIPRPP01,RCT-6,1/6,8192,SIPRNET
  NIPRPP02,RCT-6,2/6,4096,NIPRNET
  BSPEPP03,RCT-6,1/10,472,BSPE
  DPV0PP04,1/10,2/6,472,DPV0
  SIPRPP04,1/6,1/3,8192,SIPRNET
  NIPRPP03,1/6,1/10,8192,NIPRNET
  SIPRPP03,3/6,1/10,4096,NIPRNET
  NIPRZP01,MEB,RCT-6,8192,NIPRNET
  SIPRZP01,MEB,RCT-6,4096,SIPRNET
  </code></pre>
  
  <p>And writes this to a new file:</p>
  
  <pre><code> RCT-6,Establish LOS UHF MCR link MPP01 at 14336 Kbps to 1/6.
   1/6,Terminate LOS UHF MCR link MPP01 at 14336 Kbps from RCT-6.
   RCT-6,Establish SIPRNET link SIPRPP01 at 8192 Kbps to 1/6.
   1/6,Terminate SIPRNET link SIPRPP01 at 8192 Kbps from RCT-6.
   RCT-6,Establish NIPRNET link NIPRPP02 at 4096 Kbps to 2/6.
   2/6,Terminate NIPRNET link NIPRPP02 at 4096 Kbps from RCT-6.
   RCT-6,Establish BSPE link BSPEPP03 at 472 Kbps to 1/10.
   1/10,Terminate BSPE link BSPEPP03 at 472 Kbps from RCT-6.
   1/10,Establish DPV0 link DPV0PP04 at 472 Kbps to 2/6.
   2/6,Terminate DPV0 link DPV0PP04 at 472 Kbps from 1/10.
   1/6,Establish SIPRNET link SIPRPP04 at 8192 Kbps to 1/3.
   1/3,Terminate SIPRNET link SIPRPP04 at 8192 Kbps from 1/6.
   1/6,Establish NIPRNET link NIPRPP03 at 8192 Kbps to 1/10.
   1/10,Terminate NIPRNET link NIPRPP03 at 8192 Kbps from 1/6.
   3/6,Establish NIPRNET link SIPRPP03 at 4096 Kbps to 1/10.
   1/10,Terminate NIPRNET link SIPRPP03 at 4096 Kbps from 3/6.
   MEB,Establish NIPRNET link NIPRZP01 at 8192 Kbps to RCT-6.
   RCT-6,Terminate NIPRNET link NIPRZP01 at 8192 Kbps from MEB.
   MEB,Establish SIPRNET link SIPRZP01 at 4096 Kbps to RCT-6.
   RCT-6,Terminate SIPRNET link SIPRZP01 at 4096 Kbps from MEB.
  </code></pre>
  
  <p>I'm trying to group the statements together based on which tasks are for which units - I've sort of accomplished this by writing the relevant unit in the first column, which I can then sort by manually in excel to group together the relevant tasks to each unit. </p>
  
  <p>Is there a way I can have the program sort the data as it writes it to the new csv? Or is there a way I can group them like this:</p>
  
  <pre><code>1/6
  Terminate...
  Establish...
  
  2/6 
  Terminate...
  Establish...
  Establish...
  
  3/6
  Terminate...
  Terminate...
  </code></pre>
  
  <p>I appreciate any help I could get with this.</p>