I've several .csv files (~10) and need to merge them together into a single file horizontally. Each file has the same number of rows (~300) and 4 header lines which are not necessarily identical, but should not be merged (only take the header lines from the first .csv file). The tokens in the lines are comma separated with no spaces in between.
As a python noob I've not come up with a solution, though I'm sure there's a simple solution to this problem. Any help is welcome.
解决方案
You can load the CSV files using the csv module in Python. Please refer to the documentation of this module for the loading code, I cannot remember it but it is really easy. Something like:
import csv
reader = csv.reader(open("some.csv", "rb"))
csvContent = list(reader)
After that, when you have the CSV files loaded in such form (a list of tuples):
[ ("header1", "header2", "header3", "header4"),
("value01", "value12", "value13", "value14"),
("value11", "value12", "value13", "value14"),
...
]
You can merge two such lists line-by-line:
result = [a+b for (a,b) in zip(csvList1, csvList2)]
To save such a result, you can use:
writer = csv.writer(open("some.csv", "wb"))
writer.writerows(result)