From start to finish, assuming the intended output is csv, as well as the input files are csv delimited via ",". Output methods are very flexible however if something else was anticipated.
import petl
file1 = petl.fromcsv('file1.csv')
file1 = petl.pushheader(file1, ['position', 'value1'])
file2 = petl.fromcsv('file2.csv')
file2 = petl.pushheader(file2, ['position', 'value2'])
file3 = petl.fromcsv('file3.csv')
file3 = petl.pushheader(file3, ['position', 'value3'])
file1_joined_file2 = petl.outerjoin(file1, file2, key='position')
all_joined = petl.outerjoin(file1_joined_file2, file3, key='position')
all_joined = petl.convert(all_joined, 'value1', {None: 0})
all_joined = petl.convert(all_joined, 'value2', {None: 0})
all_joined = petl.convert(all_joined, 'value3', {None: 0})
all_joined = petl.convert(all_joined, ('position', 'value1', 'value2', 'value3'), int)
all_joined = petl.addfield(all_joined, 'sum', lambda rec: rec['value1'] + rec['value2'] + rec['value3'])
all_joined = petl.sort(all_joined, 'position')
print petl.lookall(all_joined)
petl.tocsv(all_joined, 'done.csv')
Output from the print above:
+----------+--------+--------+--------+-----+
| position | value1 | value2 | value3 | sum |
+==========+========+========+========+=====+
| -7 | 12 | 0 | 0 | 12 |
+----------+--------+--------+--------+-----+
| -6 | 13 | 0 | 0 | 13 |
+----------+--------+--------+--------+-----+
| -5 | 11 | 13 | 0 | 24 |
+----------+--------+--------+--------+-----+
| -4 | 10 | 4 | 0 | 14 |
+----------+--------+--------+--------+-----+
| -3 | 4 | 5 | 0 | 9 |
+----------+--------+--------+--------+-----+
| -2 | 8 | 4 | 3 | 15 |
+----------+--------+--------+--------+-----+
| -1 | 7 | 7 | 14 | 28 |
+----------+--------+--------+--------+-----+
| 0 | 9 | 6 | 8 | 23 |
+----------+--------+--------+--------+-----+
| 1 | 10 | 9 | 7 | 26 |
+----------+--------+--------+--------+-----+
| 2 | 0 | 10 | 3 | 13 |
+----------+--------+--------+--------+-----+
| 3 | 0 | 2 | 9 | 11 |
+----------+--------+--------+--------+-----+
| 4 | 0 | 0 | 10 | 10 |
+----------+--------+--------+--------+-----+
| 5 | 0 | 0 | 8 | 8 |
+----------+--------+--------+--------+-----+
| 6 | 0 | 0 | 3 | 3 |
+----------+--------+--------+--------+-----+