I will just start with the code sample (I based test1 and test2.csv directly from your provided data in your post):
## Read first csv into list
f = open("test1.csv", "r")
csv1 = f.readlines()
f.close()
## Read second csv into list
f = open("test2.csv", "r")
csv2 = f.readlines()
f.close()
## Create new csv header
header = csv1[0].replace("\n", "") + "," + csv2[0].replace("\n", "")
## Create data list and append lines from csv1 and csv2
data = []
for x in range(1, len(csv1)):
data.append(csv1[x].replace("\n", "") + "," + csv2[x].replace("\n", "") + "\n")
## Print new header and data to a new csv file
f = open("test3.csv", "w")
f.write(header + "\n")
f.writelines(data)
The comments for this are pretty straight forward and let you know what each code block accomplishes.
Doing something like this works under the assumption there is no key to associate the data from one file to the other (like in a database you have an ID to associate between tables).
You could also use the builtin csv library and break this out into functions, etc, etc, but for something this simple I find it easier to just write it out as I did.
Here is the output:
offset,status,value
1,ok,12
2,nok,13
3,ok,14