LexManos

Simple MCP Maping Merger

Feb 9th, 2012
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.58 KB | None | 0 0
  1. import sys
  2. import csv
  3. import logging
  4. import os
  5. import shutil
  6. from optparse import OptionParser
  7.  
  8. def main():
  9.     parser = OptionParser(version='Blah')
  10.     parser.add_option('-p', '--path', dest='path', help='The Method file')
  11.     options, _ = parser.parse_args()
  12.     merge('../MCP-1.1.0-Clean/conf/fields.csv', '%s/conf/fields.csv'%options.path, ['searge', 'name', 'notch', 'sig', 'notchsig', 'classname', 'classnotch', 'package', 'side'])
  13.     merge('../MCP-1.1.0-Clean/conf/methods.csv', '%s/conf/methods.csv'%options.path, ['searge', 'name', 'notch', 'sig', 'notchsig', 'classname', 'classnotch', 'package', 'side'])
  14.    
  15. def merge(newFile, oldFile, sig):
  16.         shutil.move(oldFile, '%s.back'%oldFile)
  17.         csv.register_dialect('csvstyle', delimiter=',', quoting=csv.QUOTE_ALL)
  18.         tCsv = csv.DictReader(open(newFile, 'rb'))
  19.         newCsv = []
  20.         for row in tCsv:
  21.             newCsv.append(row)
  22.            
  23.         tCsv = csv.DictReader(open('%s.back'%oldFile, 'rb'))
  24.         oldCsv = []
  25.         for row in tCsv:
  26.             oldCsv.append(row)
  27.                
  28.         for row1 in newCsv:
  29.             for row2 in oldCsv:
  30.                 if (row2['searge'] == row1['searge'] and row2['side'] == row1['side']):
  31.                     row2['name'] = row1['name']
  32.                    
  33.         with open(oldFile, 'wb') as f:
  34.             writer = csv.DictWriter(f, sig, dialect='csvstyle')
  35.             writer.writerow(dict(zip(writer.fieldnames, writer.fieldnames)))
  36.             writer.writerows(oldCsv)
  37.            
  38.         #os.remove('%s.back'%oldFile)
  39.                
  40. if __name__ == '__main__':
  41.     main()
Advertisement
Add Comment
Please, Sign In to add comment