Easily manipulate csv files with python. CSV Mapper is a python Module capable of parsing CSV files against a pre-defined mapper file, as well as converting between them.
CSV-Mapper can be installed using pip or easy_install
$ pip install csvmapper
Another way, which installs the latest updated version is
$ git clone http://github.com/samarjeet27/CSV-Mapper
$ cd CSV-Mapper
$ python setup.py install
Using Field Mapper
fromcsvmapperimportFieldMapper, CSVParserfields= ('firstName', 'lastName', 'age')
# if csv file already has a header, use CSVParser('data.csv', hasHeader=True) insteadparser=CSVParser('data.csv', FieldMapper(fields))
data=parser.buildObject() # or parser.buildDict() for a dictionaryA quick snippet to parse files using a dictionary mapper (with type support) -
importcsvmapper# can use csvmapper.JSONMapper, csvmapper.XMLMapper or custom mappers alsomapper=csvmapper.DictMapper([
[ { 'name': 'firstName' } , { 'name' : 'lastName' }, { 'name': 'age', 'type':'int' }
]
])
# data.csv# ------# John,Doe,39# James,Bond,29# Harry,Potter,28parser=csvmapper.CSVParser('data.csv', mapper)
people=parser.buildObject()
print'%s will be %d years old after 2 years'%(people[0].firstName, (people[0].age+2))if your file already as column headers and you don't worry about the type, you can use -
csvmapper.CSVParser('data.csv', hasHeader=True)# create parserparser=csvmapper.CSVParser()
dictionary=parser.buildDict() # manipulation works for dict only at the moment# manipulate csv filewriter=csvmapper.CSVWriter(dictionary) # or CSVObject instancewriter.write('data.csv') # write(filename)importcsvmapper# using same vars as aboveconverter=csvmapper.JSONConverter(parser) # or csvmapper.XMLConverterprintconverter.doConvert(pretty=True)The MIT License